Sova v síti - 1/25 - vydáno 8.10.2001 Dobrý den, končí pondělí a je zde vaše Sova v síti :-) OBSAH -- Kdy použít javascript, a jak -- Pevná mezera v HTML -- Novinky u Petra Kocny -- Odpovídáme na dotazy čtenářů KDY POUŽÍT JAVASCRIPT, A JAK Martin Kopta Určitě znáte případ, kdy se dostanete na nějaký website, a po něm se nemáte možnost rozumně pohybovat, protože je inkompatibilní s vaším prohlížečem. Pokud nepoužíváte poslední verzi prohlížeče nejrozšířenější značky (nyní je nejrozšířenější MSIE 5.5), přihodí se vám popisovaná událost často. Výsledkem pak obvykle je okamžité opuštění takového webu -- takže provozovatel přišel o uživatele, a patrně ho už nikdy nezíská zpět. Velký průšvih prohlížečů je, že se nelze spolehnout na to, že by každá nová verze rozvíjela tu starou. Někdy výrobce udělá krok stranou, nebo prostě změní směr vývoje. Napsal jsem třeba pln radosti z MSIE 4.0 (nyní méně než 5 %) jednoduchý WYSIWYG textový editor pro redakční systém tak, aby s ním mohli pracovat i lidé, kteří nechápou HTML, a jaké bylo mé překvapení, když jsem za pár měsíců zjistil, že pod MSIE 5.0 (cca 30 %) přestal fungovat a pod MSIE 5.5 (cca 45 % ve statistikách návštěvnosti) opět začal. Pomineme-li použití nevhodných značek HTML (brzy například iFrame), zjistíme, že nejčastější příčinou nefunkčnosti webu je klientský skript. Mnozí autoři bohužel nejsou s to rozeznávat jednotlivé vývojové a platformní rozdíly mezi verzemi skriptu, a tak aplikace píší jen pro určitý omezený počet prohlížečů. Posléze webmasteři argumentují tím, že nikdo jiný, než vlastníci programového vybavení, pro které je web připraven, stránky stejně nenavštěvuje, takže není důvod je upravovat i pro ostatní. Bohužel si v tu chvíli neuvědomují, že uživatel, kterému web klade překážky, otevře jednu stránku, odejde a už se nikdy nevrátí, což je mnohdy důvod toho, proč se neobjevují ve statistikách návštěvnosti minoritní platformy. Vás, jako tvůrce webu určitě zajímá, jak z této nepříjemnosti ven. Především je třeba s velkým přemáháním uznat, že javascript není cosi, co by mělo být nedílnou součástí website, ale pouze nástroj pro manipulaci s prohlížečem (stejně jako třeba akce ve Photoshopu). Chceme-li, aby website byl plně dostupný, musí být funkční i bez podpory skriptů na klientu. Už v tom je kámen úrazu, protože mnozí z nás píší své aplikace rovnou s rolečky (rollover), vyskakovacími (popup) okny a roletkovou (dropdown) navigací. Zkuste nejdříve napsat website zcela bez použití javascriptu. Až budete hotovi, začněte postupně přidávat funkce zvyšující uživatelské pohodlí a teprve na konec přidejte vizuální efekty. Je pravda, že tímto způsobem na tvorbě webu strávíte více času, na druhou stranu ale web uděláte jen jednou, a pak jej nemusíte dva roky měnit (doporučená doba provozu aplikace webu je 2--3 roky bez zásadních zásahů) a získáte větší rozpětí uživatelských platforem. O zvýšených nárocích na podporu méně rozšířených platforem obvykle nechtějí slyšet obchodníci. Zkuste se jich zeptat, kolik peněz očekávají, že firmě přinese každý z uživatelů, a pak tuto hodnotu vynásobte počtem uživatelů minoritních platforem (což jsou kromě jiného třeba i lidé, kteří se k Internetu připojují prostřednictvím drahých mobilních zařízení). Pokud byste měli rozšířit podporu na platformy jiné než MSIE 4+ (85 %), znamená to zisk o 17,6 % vyšší. Tento příjem obvykle přesáhne zvýšené náklady. Pro vyšší kompatibilitu aplikací na webu je třeba zajistit několik jednoduchým předpokladů: ---> především každý navigační prvek musí fungovat i bez podpory javascriptu -- roletková menu musejí mít tlačítko pro odeslání formuláře na server, kde musí existovat obslužný skript; ---> odkazy a
nesmějí být směřovány na schema "javascript:", ale na schema "http://" (podobně je vhodné zajistit HTTP odezvu i místo "mailto:", případně i "ftp://" ad.); ---> javascriptové akce musejí být vyvolávány pomocí událostních ovladačů -- ať už přímo v atributech HTML, nebo nastavené v těle prvku