IE的条件编译引发的bug

且看一段代码:

在IE中执行,会alert(“this is IE”), 在其他浏览器中则不会; 因为: “//@cc_on” 是IE的条件编译的语法,或许你没有这么用过,或许你也不打算用IE的这个特性,这都没关系,问题是如果你因为这个导致bug就显得有些冤了,看如下代码:

就这段代码,其他浏览器都好使,在IE下就出错,而且报错信息会让人费解:

 

 

这是因为使用 /*@cc_on@*/ 在IE中就开启了条件编译,下面的 //@ 就被识别为条件编译指令,于是就出错了。

使用IE的开发者调试工具时还要注意一个问题,只要执行了 /*@cc_on@*/ ,后面即使把他删掉,也还是开启了条件编译 了,因为多次执行是在同一个进程内的。

该问题可能出现的情况为: 加入你在开发一个js的某某sdk,可能会因为注释的问题在有些地方工作正常,在有些地方就工作异常,那将是多么郁闷的事情啊。

 

参考资料: http://baike.baidu.com/view/1097041.htm

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据