2012-05-30 24 views
11

Así, un fallo en una pieza de javascript giraba en torno a un código similar a:¿Para qué usa IE // @ en javascript?

<script> 
    (function() { 
     if (true) { 
      //@todo: do we need to set total or -- ? 
      alert('hello?'); 
     } 
    })(); 
</script> 

En el sistema más grande de IE se quejó "esperaba ';' ". En el ejemplo a pequeña escala IE simplemente causaba una advertencia sobre el bloqueo de controles ActiveX.

Obviamente, "// @" tiene contexto para los controles de ActiveX en IE. No pude encontrar esto ya que la búsqueda de los símbolos era inútil, y cualquier búsqueda sobre comentarios especiales en IE da como resultado los comentarios condicionales html. Solo tengo curiosidad por saber cómo // se supone que deben usarse en IE.

+0

debe ser sólo un indicador de comentario con un @ después de que Probado en IE9, no me da ningún error http://jsfiddle.net/gZsQt/1/ – pandavenger

+4

@celadonz http://stackoverflow.com/questions/6631431/javascript-jquery-commenting-causing-errors-in-ie - ¿Intentó agregar un espacio entre '//' y el símbolo '@'? – Andreas

+0

Lo siento, no me comuniqué bien. Resolví el problema (poniendo un espacio entre el // y @ como sugirió Andreas). Solo tenía curiosidad por el uso de ese comentario especial. – celadonz

Respuesta

4

El motor de IE JScript admite conditional comments que convierten los comentarios escritos de una manera particular en código (parcialmente). Sin embargo, no los estás usando.

En su caso, parece ser una forma de decir, p. un IDE de que hay un elemento TODO. El error que obtuviste probablemente no esté relacionado.

0

A menos que exista alguna peculiaridad sobre IE que no conozco, la //@todo solo está comentando la pelusa que algunos programadores usan cuando son demasiado perezosos/no saben cómo implementar algo.