Při programování v JavaScriptu se občas neobejdeme bez detekce webového prohlížeče. To lze řešit více způsoby, ať již prostřednictvím starého document.all nebo analýzou user-agent stringu, každý z nich má své ale.
Dean Edwards, autor řady JavaScriptových knihoven, přišel s tou nejkratší a nejspolehlivější detekcí Internet Exploreru, jakou jsem kdy viděl:
var isMSIE = /*@cc_on!@*/false;
A rychle se objevují nápady, jak detekci ještě o dva či tři znaky zkrátit. Najdete-li takový, napište ho Deanovi do blogu, a třeba se stanete autorem té nejkratší detekce na světě.
Pátral jsem, jak zmíněná detekce funguje. Přeci jen podmíněné komentáře Internet Exploreru v HTML jsou známé, ale podmíněné komentáře v JavaScriptu byla pro mne novinka.
Našel jsem dokumentaci @cc_on – ‚conditional compilation‘ a pěkný článek (v němčině – google translate). JScript Internet Exploreru komentář vykoná, zatímco ostatní prohlížeče jej ignorují.
Standardní prohlížeče vidí:
var isMSIE = false;
kdežto IE přečte:
var isMSIE = !false;
Vlastnost je podporovaná již od IE4 (a je i v IE7), takže spolehlivě použitelné v celém IE-spektru. Deane, jsi génius!
[2] Dobry, ale podivej se Michale do komentaru na http://dean.edwards.name/weblog/2007/03/sniff/ myslim, ze uz tam publikovali i kratsi
Martin Hassman ex-biochemik, umělecký programátor a publicista. Spoluzakladatel CZilly, zakladatel Zdrojáku, správce HTML5.cz, organizátor hackathonů, čekovacích muzejních nocí aj. akcí.
Přečteno 24 631×
Přečteno 24 169×
Přečteno 20 834×
Přečteno 19 910×
Přečteno 19 849×