2014-06-29 7 views
19

solo una piccola domanda su questo commento che ho trovato su un ebook su HTML5: /* @ cc_on! @ */0 questo commento dovrebbe essere in qualche modo legato al riconoscimento del browser IE per poter utilizzare document.createElement() per creare gli elementi HTML5 non riconosciuti, ma non ho trovato informazioni utili sul significato di come funziona, anche se l'autore non lo spiega. Qualcuno potrebbe spiegarmi cos'è e cosa fa, per favore?cosa fa questo commento/* @ cc_on! @ */0 all'interno di un'istruzione if in javascript?

Grazie per l'attenzione!

EDIT:

nel ebook l'autore dice:

Il prossimo esempio dimostra come risolvere il problema per tutti i nuovi elementi introdotti in HTML5. Qui includiamo tutti gli elementi che vorremmo forzare IE a riconoscere:

Ed ecco il codice:

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="UTF-8" /> 
    <title>Styling Unknown Elements - 3</title> 
    <script> 
     (function() { 
      if (! /*@[email protected]*/ 0) 
       return; 

      var e = "abbr,article,aside,audio,canvas, datalist,details,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output, progress,section,time,video".split(','), 
       i = e.length; 
      while (i--) { 
       document.createElement(e[i]); 

      } 
     })() 
    </script> 
    <style> 
     time { 
      font-style: italic; 
     } 
    </style> 
     ... 

Ci scusiamo per l'orribile indentazione, ma sto usando un tablet. Ad ogni modo, per favore, dai un'occhiata al tag script e alla condizione if.

risposta

21

@cc_on Dichiarazione è la bandiera compilazione condizionale per IE (< 11) del browser

Citazione di MSDN

@cc_on Statement (JavaScript)

di attivare il supporto compilazione condizionale all'interno dei commenti in una sceneggiatura.

Attenzione

compilazione condizionale non è supportato in modalità Internet Explorer 11 standard e le applicazioni di Windows Store. La compilazione condizionale è supportata in modalità standard di Internet Explorer 10 e in tutte le versioni precedenti di .

/*@cc_on @*/ 
/*@ 
    document.write("JavaScript version: " + @_jscript_version + "."); 
    document.write("<br />"); 
    @if (@_win32) 
     document.write("Running on the 32-bit version of Windows."); 
    @elif (@_win16) 
     document.write("Running on the 16-bit version of Windows."); 
    @else 
     document.write("Running on a different operating system."); 
    @end 
@*/ 

così

if(!/*@[email protected]*/0) 

Se il vostro browser non conosce la compilazione condizionale (diverso da IE < 11), l'espressione sarà:

if(!0) // ==> TRUE 

altrimenti sarà :

if(!!0) // ==> FALSE 
+0

Grazie per la risposta, ma la dichiarazione di compilazione condizionale nel mio caso è un po 'diversa, potresti spiegarmi per favore perché c'è un **! @ ** dopo il ** @ cc_on ** e che cos'è ** 0 ** dopo la chiusura */commento? – tonix

+0

si prega di controllare la mia modifica – tonix

+0

@ user3019105 appena modificato; buona giornata :) – InferOn