Nem is tudtam, hogy az IE-ben nem csak HTML kommenteknél lehet feltételeket használni, hanem JavaScript kommenteknél is. A HTML feltételes komment:
ezt csak IE6 alatt látni..
<![endif]-->
Minap valami buta hacker fórumra büszkén írta be valaki a legújabb felfedezését:
//@cc_on alert("Hello IE!");
</script>
És láss csodát: IE alatt lefut a kommentben lévő alert. Azon túl, hogy először meglepődve néztem, második nekifutásra azért mégsem nevezhetjük ezt sem hack-nek, sem bug-nak. HTML-ben ismert feltételes kommentekhez hasonlóan JavaScript-ben is van feltételes fordítás. (conditional compilation) És mindezt a @cc_on -nal lehet bekapcsolni.
Minimális kiegészítés az alap utasításkészlethez:
/*@cc_on
document.write("JScript version: " + @_jscript_version + ".<br>");
@if (@_jscript_version > 5.7)
document.write("You are using IE8+");
@else if (@_jscript_version == 5.7 && window.XMLHttpRequest)
document.write("You are using IE7");
@else if (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest))
document.write("You are using IE6");
@else if (@_jscript_version == 5.5)
document.write("You are using IE5.5");
@else @*/
document.write("This text is seen by all other browsers (ie: Firefox, IE 4.x etc)<br>");
/*@end
@*/
</script>
Mindent összevéve persze mindennek ExtJS használva semmi haszna, átláthatatlan és körülményes. Mindegy, érdekesség. :)
Használatát meg természetesen senkinek sem ajánlom! :)
Böngészőtípus meghatározására ott az Ext.isGecko, Ext.isIE, Ext.isIE7 és társaik.