2011-08-22 23 views
10

¿Alguien puede explicar cómo funciona el principio y el final del script html5shim?javascript: ¿qué significa/* @ @ */mean?

el guión comienza con /*@ y termina con @*/ así:

/*@cc_on(function(a,b){function ........ (this,document);@*/ 

¿Cuál es el /*@ @*/ haciendo?

Espero que la secuencia/* */comente todas las líneas entre ellos, pero desde que se ejecuta el script, ese no puede ser el caso aquí? Estoy confundido.

encontrado en:

http://html5shim.googlecode.com/svn/trunk/html5.js

Respuesta

14

JScript de IE apoya 'la compilación condicional', un truco de esconder navegador especial -específica en los comentarios. La idea es que /*@[email protected]*/ es una secuencia tan inusual de caracteres que es seguro reutilizarla para introducir esta nueva característica de nivel de sintaxis.

html5shiv lo usa para crear una pieza de código que ni siquiera intentará ejecutarse en la mayoría de los navegadores (que, como usted lo hizo, interpretará todo como un elogio), pero que tiene un significado especial para IE.

MS doc here. Ningún otro motor JS lo admite. Por lo general, puede preferir un código más explícito de olfato de comportamiento, pero si realmente necesita detectar una característica de IE que no se exponga a olfatear de lo contrario, puede ser útil.

+1

"Ningún otro motor JS admite esto" ... ¿no es ese el punto? ;) – Artfunkel

+1

@Artfunkel: bueno, otros navegadores han elegido otras extensiones de navegador, por lo que no está fuera del alcance de la posibilidad de que alguien más implemente algunas de las funciones de CC. Probablemente no sea una buena idea ahora que todos lo usan exclusivamente para detectar IE, aunque ... – bobince

Cuestiones relacionadas