当前位置: 代码迷 >> Web前端 >> IE上诡异的注释报错――条件编译
  详细解决方案

IE上诡异的注释报错――条件编译

热度:175   发布时间:2012-10-07 17:28:51.0
IE下诡异的注释报错――条件编译

??? 昨天QA的同事提了一个bug,在IE下功能不正常,去IE下看了,报xxx行错误,IE还是一如既往的报告不准确的错误行数,于是只要使用人肉回车定位法(加回车之后看IE报的行数是否有变化,如果有变化,说明错误在加回车行的后面,如果没有变化,说明在加回车行的前面),最终定位到一行注释上去,自己看了半天都不知道哪儿错了,还是怀疑附近代码的错误导致的,于是乎使用人肉加注释定位法(将某个代码块注释,如果错误消失,就说明是该代码行的问题),结果还是定位到这行注释,一怒之下将这行删掉,结果就ok了,想了想这行注释和一般的注释不同之处,才发现这行注释有一个@,于是只删@发现也ok了,给@前加一空格也ok,这时跟我一次查此问题的兄弟一拍大腿:此问题好像见过,我回去查查!果不其然,原来万恶的IE有一个“条件编译”的丑陋功能,提供如C中的#ifdef之类的功能,如果注释符号紧接着@就是一个条件编译的开始,而正好这行注释@后不是“条件编译”的关键字,因此报错,IE真是。。。。。。大家以后一定要小心,不要在注释后直接加@符号,当然在你不是为了“条件编译”的前提下。,

?

关于条件编译,在这里不赘述,可以参考:

?

中文:http://simue.com/blog/css-js/conditional-compilation-of-javascript-in-ie-1.html

英文:http://www.javascriptkit.com/javatutors/conditionalcompile3.shtml

?

?

顺便在g/b的时候发现的IE条件注释,仅供参考:

http://cssrainbow.cn/tutorials/xhtml-css/1130.html

?

  相关解决方案