conditional compilation

2009.11.19. 20:54 stack

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:

<!--[if IE 6]>
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:

<script type="text/javascript">
//@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:

<script type="text/javascript">
/*@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.

Szólj hozzá!

Címkék: comment

A bejegyzés trackback címe:

https://extjs.blog.hu/api/trackback/id/tr201537069

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?

süti beállítások módosítása