IE10引发JavaScript错误(SCRIPT1004)

时间:2018-11-30 11:36:19

标签: javascript internet-explorer-10

我注意到IE10的行为异常。

我有一个具有以下内容的javascript文件:

var x = 1;

//@deprecated, use static version
var y=function(interval){
    console.log(interval);
};

文件使用UTF-8编码。

我有一个带有meta标签的html文件

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

如果以前的文件是通过<script>标签添加的,则可以使用。

如果我改为下载通过javascript创建脚本元素并将文件追加到文件头的文件:

var script = document.createElement('script'),
head = document.getElementsByTagName('head')[0];

script.type= 'application/javascript';
script.src = ''; // omissis

head.appendChild(script);

它适用于IE11,但不适用于IE10:抛出错误

(SCRIPT1004): expected ';'

奇怪的是:错误的行号和列号指向//@deprecated之后的逗号:但这应该是注释,它不应引发任何错误。

顺便说一句:创建script标签并将其附加到头部的javascript对所有javascript文件和所有浏览器都有效。仅在文件中包含//@deprecated注释时,它似乎才被破坏。

谢谢你,干杯

1 个答案:

答案 0 :(得分:0)

好的,感谢@ Deepak-MSFT,我发现了错误。

该错误是由代码段执行之前 加载的另一个脚本引起的。

在此脚本中,存在代码/ @cc_on!@ /,该代码可激活IE(<11)浏览器的条件编译标志。这是与此有关的另一个堆栈溢出问题:

what does this comment /*@cc_on!@*/0 do inside an if statement in javascript?

如果我注释掉该行,问题就会消失。

感谢@ Deepak-MSFT,因为他试图通过执行我指示的步骤来重现该问题-这是我的错,因为我描述了在不亲自进行测试的情况下重现该问题的最少步骤。