IE10 抛出 javascript 错误 (SCRIPT1004)

IE10 throwing javascript error (SCRIPT1004)

我注意到 IE10 有一个奇怪的行为。

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

var x = 1;

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

该文件使用 UTF-8 编码。

我有一个带有元标记的 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之后的逗号:但这应该是一个注释,它不应该抛出任何错误。

顺便说一句:创建脚本标签并将其附加到头部的 javascript 适用于所有 javascript 文件和所有浏览器。它似乎只有在文件内部有 //@deprecated 注释时才被破坏。

谢谢,干杯

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

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

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

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

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

感谢@Deepak-MSFT,因为他试图通过执行我指示的步骤来重现问题 - 这是我的错,因为我描述了重现问题的最少步骤,但我自己没有实际进行测试。