Přejít k navigační liště

Zdroják » Zprávičky » Nejkratší možná detekce Internet Exploreru má pouhých 9 znaků

Nejkratší možná detekce Internet Exploreru má pouhých 9 znaků

Před dvěma roky Dean Edwards hledal krátkou a elegantní detekci Internet Exploreru a přišel s pěkným řešením /*@cc_on!@*/false(pokud vás zajímá princip, přečtěte si o podmíněných komentářích v JavaScriptu Internet Exploreru). Již samovolně pak vznikla soutěž o nejkratší možnou detekci (zapojili se i Češi) a objevila se řada originálních nápadů, např./*@cc_on!@*/0; nebo superkrátký a pravděpodobně dosavadní vítěz //@cc_on=1 . Tyto výrazy vrací true v Internet Exploreru, v ostatních prohlížečích vrací  false.

Ačkoliv fungovaly spolehlivě, měly jednu chybu – byly špatně zapamatovatelné. Andrea Giammarchi přišel s dalším řešením, postaveném na chybě v IE, konkrétně na nerozpoznání escapovaného znaku „v“ (IE jej vidí jako písmeno „v“). Pro detekci IE vám tak postačí devíti znakový výraz 'v'=='v', který je již snadno zapamatovatelný.

Můžeme vůči němu namítat, že je se jedná o využití známé chyby prohlížeče, která může být jednoho dne (třeba v IE9) opravena a kód přestane fungovat. Můžeme ostatně namítat, že dnes bychom se měli jakékoliv detekci prohlížečů vyhnout obloukem, jak se třeba snaží v poslední verzi vývojáři jQuery, protože dnes už detekce prohlížečů není nutná. To vše nám ale nebrání v malé oslavě nového rekordmana o velikosti pouhých 9 znaků.

(Zdroj: Ajaxian)

Komentáře

Subscribe
Upozornit na
guest
1 Komentář
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Daniel Steigerwald

jQuery přístup, tedy testovat přímo chování prohlížeče, bez detekce jeho konkrétní verze, nemůže vždy fungovat. Vlastně, v jQuery funguje pouze protože tento framework je sám o sobě dost omezený.. Bylo by krásné, kdybychom mohli všechno detekovat skrz Javascript, ale to prostě nejde. Příklady? backgroundImage cache pro IE6, tabindex pro neformulářové prvky, 2px bug pozice myšího kurzoru, memory leaks, existence specialních eventů (selectstart, mousewheel..) a tak dále.. I když musím říct, že se mi jQuery přístup líbí, prohlašovat, že detekce prohlížeče není třeba je blbost.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.