Starší komentáře ke článku: Alternativní styly - změna stylu pomocí JavaScriptu

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Leo

Datum vložení: 7.4.2004 9:04:18

Nebo styleSheets. Leo

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 7.4.2004 12:02:48

Problém při uložení cookie v opeře by mohla vyřešit třeba funkce escape, ne? Nemůžeš to přece takhle cpát natvrdo, co kdyby ten title ještě kromě českých znaků obsahoval i rovnítko nebo střední, to by byl teprve binec. Takže řešení - zabali řetězec před uložením do cookie pomocí fce escape a po vytáhnutí z cookie rozbalit unescape. A je vystaráno. Zkus se nad sebou zamyslet a polepšit se, lefty ;-)

Avatar

Autor komentáře: Leo

Datum vložení: 7.4.2004 12:54:36

Escape je zbytecne ukecana. V cookie je zakazano jenom malo znaku, a je zbytecne prevadet ostatni - vsechno se to pak prenasi sem a tam. Staci vlastni osetreni. Leo

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 7.4.2004 14:05:43

To jak je escape ukecaná fce je úplně jedno. Svůj účel plní, tady bajtíky šetřit nemusíme a je to nejjednodušší řešení. Tady dělat vlastní ošetření není nutné. Co myslíš tím "stačí", když je to vlastně náročnější řešení? A navíc můžu do kódu zanést další chyby. Já říkám - "tady stačí escape".

Avatar

Autor komentáře: Leo

Datum vložení: 7.4.2004 14:31:28

Narocnejsi pro koho? Linyho programatora? :-) Leo

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 7.4.2004 15:09:15

Někde jsem slyšel, že průměrný programátor (nebo jiný IT specialista) je velice líný - a např. o mě to platí dvojnásob ;-)
Ale teď vážně. Programátorské práce je hromada, a kdybych se se vším štval tak jako třeba v tomhle případě, tak bych nebyl moc efektivní. Vím, o čem mluvím, protože je to můj chleba. Není nutné hledat vždy nejdokonalejší řešení, takové totiž nikdy neexistuje. Je třeba najít kompromis mezi kvalitou výsledné aplikace a náklady na vývoj.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 7.4.2004 15:10:27

Pozor, nejdokonalejší řešení musí existovat vždy, pouze nemusí být zároveň nejefektivnější ;-)

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 7.4.2004 16:46:58

No pak by mě ovšem zajímala definice dokonalosti. Já jsem si totiž dokonalost představoval jako dosažení nejlepší hodnoty ve všech možných kritériích ;-) A může jich být hodně. Jaké parametry/vlastnosti má podle vás mít dokonalé řešení? Můžete použít jako příklad tento konkrétní případ.

Avatar

Autor komentáře: Leo

Datum vložení: 7.4.2004 15:50:23

Ja jsem hned myslel na to, ze kdyz uz bych to jednou delal, tak to udelam zrovna do tech fci pro praci s cookie, ktery budu pouzivat casteji. A pokud mam dlouhe cookie, tak se na server prenasi zbytecne mnoho znaku. Leo

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 7.4.2004 16:43:06

Hmm, já už webaplikace dělám hodně dlouho a dlohé cookie jsem ještě nepotřeboval. Btw myslím že escape jsem viděl i v nějakém příkladu v MSDN ale to je jedno, nechme už toho, dyť je to prkotina ;-)

Avatar

Autor komentáře: Leo

Datum vložení: 7.4.2004 17:10:56

Ja jsme je nedavno potreboval a zrovna v JS, proto se param s detaily. Jinak mate pravdu, tady je to prkotina. Z MSDN bych si priklad nebral. Mimochodem, escape je vypustena ze standardu a misto ni se doporucuje encodeURI - ta ovsem nepracuje ve starsich prohlizecich. Leo

Avatar

Autor komentáře: Roman Dagi Pichlik

Datum vložení: 8.4.2004 7:46:50

Mozna, ze to bude trochu OT, ale escape a encodeURI se chovaji trochu jinak. Funkce encodeURI escapuje vzdy znak podle utf-8. Kdezto implementace escape se chova prazvlastne, spravne by se mela ridit podle kodovani stranky tak jak to dela Mozilla, ale IE(5.0 a 5.5) tvrdosijne escapuje prodle windows-1250.

Vysledkem je to, ze pokud neni kodovani stranky windows-1250, tak pro znaky >127 vraci escape v IE(5.0,5.5) a v Mozille dva naproste jine retezce. Proto bych doporucoval zasadne pouzivat metodu encodeURI, ktera je sice az od IE 6.0, ale chova se korektne. Pro starsi verze IE je treba si napsat vlastni funkci.

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 8.4.2004 10:20:39

Jestli to ale chápu správně, i když je stránka třeba v ISO, tak pokud provedu escape, a prohlížeč řetězec wezme jako win1250, stejně se zpětně rozloží při unescape na úplně stejný řetěyec jako původní, ne? Tedy samože na stejném prohlížeči. Váš argument, že escape vrací v IE(5.0,5.5) a v Mozille rozdílné řetězce je irelevantní, protože pokud vím, prohlížeče si cookies mezi sebou nepředávají ;-)

Avatar

Autor komentáře: Leo

Datum vložení: 8.4.2004 11:32:56

V tomto pripade ano. Ale pokud se cookie predava na server a tam zpracovava, muze uz to vadit. Leo

Avatar

Autor komentáře: Yuhů

Datum vložení: 7.4.2004 12:20:01

Myslím, že nepříjemnostem v Opeře by se dalo předejít tak, že se cookie nebude ukládat až při opuštění stránky, ale už při přepínání stylu. Obecně se mi navázání ukládání cookie na událost unload jeví zbytečně vzdálené logice toho skriptu.

Chápu, že byla snaha udělat co nejméně zbytečných akcí (proč nastavovat cookie, když to uživatel ještě může změnit), na druhou stranu javascriptové uložení cookie na klientovi je akce naprosto nenáročná a prakticky okamžitá. Takže doporučuji zahrnout volání createCookie() na konec funkce setStyle().

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 7.4.2004 14:09:20

Taky jsem nechápal ukládání cookie až při unload, ale pak mi to došlo - pokud by uživatel změnil styl v menu browseru, skript by se nezavolal a cookie by se neuložila.

Avatar

Autor komentáře: Yuhů

Datum vložení: 8.4.2004 13:24:38

Aha, to mě nenapadlo, to je chytré.

Napadá mě to zkombinovat, ukládat cookie v obou případech. Při přepnutí stylu odkazem to vyřeší Operu a při opuštění stránek to vyřeší Mozillu přepnutou z menu.

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 8.4.2004 16:46:24

Průšvih je pořád, viz článek:

<I>To má za následek, že pokud uživatel změní styl přes menu, hodnoty atributů disabled zůstanou jako před změnou.</I>

Takže pokud se přepnu v menu v Opeře, skript u unload aktuální nastavení nemůže zjistit :(

Avatar

Autor komentáře: vfb

Datum vložení: 8.4.2004 14:11:38

pres php to jde jednoduse a ve vsech browserech i v tech s vypnutym js

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 8.4.2004 14:37:03

Až si budete vybírat koloběžku, tak Vám také doporučím nějaké to BMW, auto přece jezdí lépe ;-)

Avatar

Autor komentáře: muddler

Datum vložení: 10.4.2004 10:22:51

Ale proc montovat do BMW motor z TRABANTA. :o)

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 11.4.2004 23:27:46

Tady ale nikdo neřekl, že sedíme v BMW, nebo ano?

Avatar

Autor komentáře: voloda

Datum vložení: 10.4.2004 3:07:51

Clanok ma velmi zaujal, som to vyskusal a riesenie sa mi velmi paci, len ma teraz zaujima ako script vyzeral pomozou PHP, bude pokracovanie vobec ???
Diky, cafte

Avatar

Autor komentáře: Jan Brasna

Datum vložení: 10.4.2004 4:19:50

Staci cist:

".... Tato série článků dosud nebyla ukončena!"

Takze urcite bude ukazano i server-side reseni.

Avatar

Autor komentáře: ondra

Datum vložení: 13.4.2004 11:16:54

neslo by uvest naky priklad jak je to zakomponovane v html ??

kam ten js dat?
<LINK href="styl1.css" type=text/css rel=StyleSheet>
<html>
<head>
<
</head>
<body>
<a href="s1">styl1</a>
<a href="s2">styl2</a>

</body>
</html>

Avatar

Autor komentáře: pixo.sk

Datum vložení: 28.5.2006 1:52:57

takto: [b] <head> " <link href="style1.css" type="text/css" rel="stylesheet" media="all" /> <script type="text/javascript"> <!-- sem pride js, ak ho chces mat priamo v dokumente //--> </script> <script src="script_v_externom_dokumente.js" type="text/javascript"></script> </head> [/b] Odporucam druhy sposob, tento script je dost velky A neodpustim si poznamku, naco niekto, kto nevie ani kam patri link na css, ide robit alternativne styly? Zbrazujte si source kody na pochopenie struktury. PS: neda sa to tu nejak normalne naformatovat? aj ked napisem &quot; je to podciarknute a znicene co som napisal... http://www.vivo.sk/files/modules/module_autoportret.php?uid=1059

Avatar

Autor komentáře: Forrest

Datum vložení: 23.2.2007 20:41:22

Sem lama a nutne tohle potrebuju. Nemohl by mi nekdo ukazat priklad jak to zakomponovat. hlavne jak napsat ty styly jak je to s tema title jestli musi byt u kazdeho stylu nebo jen u hlavniho nabo jak?

Avatar

Autor komentáře: Martin Adámek

Datum vložení: 2.3.2007 13:53:48

Tak mně to nechodilo v Mozille FF - a po přidání výše doporučené escape funkce mi to chodí. (Tím chci říct, že i Mozilla českou diakritiku bez escape sekvence nezvládne - někdo psal, že Mozilla to bez escape zvládne)

Avatar

Autor komentáře: Hans

Datum vložení: 15.5.2007 18:50:51

mám udělaný 4 různý styly (*.js) a nevim jak je tam mám vložit do toho scriptu, kterej sem ztahnul z tohohle článku

Avatar

Autor komentáře: Hans

Datum vložení: 16.5.2007 14:35:51

pardon sem se přepsal styly jsou v css

Avatar

Autor komentáře: Pyškůtek

Datum vložení: 25.7.2007 21:23:57

dyť tu máš návod pro blbce...

Avatar

Autor komentáře: Pyškůtek

Datum vložení: 25.7.2007 21:05:46

Dobrý den, mám dotaz... Mám dokument a uvnitř něho je vložený iframe. Když změním styl toho dokumentu, dokument načítaný v iframe se nemění (např. pozadí)... Nefunguje v MSIE, Mozilla Firefox funguje bez problémů, Opera má stejný problém, jako IE - načtení stylu z cookies se neprovede... Můžete mi poradit? Děkuji

Avatar

Autor komentáře: Yanczi

Datum vložení: 14.11.2007 9:34:40

Iframe je proste problém. Ja som hladal riešenie na rôznych diskusiách, ale nič nefungovalo. Jediné riešenie zatiaľ je že sa [b]namiesto Iframe použije budto vkladanie Javascriptom, alebo metoda PHP-include.[/b]

Zpět na článek | Úvodní stránka Interval.cz