Nejkratší detekce Internet Exploreru na světě

1. 6. 2007 17:29 (aktualizováno) Martin Hassman

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;

Vyzkoušejte.

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!

Sdílet