javascript - IE8 抛出 JavaScript 语法错误 - 在脚本之外

标签 javascript internet-explorer internet-explorer-8

我遇到了一个奇怪的问题,即 IE8 在脚本标记之外报告 JavaScript 错误(或者它声称如此),并破坏了页面上的所有其他 JS。这是有问题的代码:

<script type="text/javascript">//<![CDATA[
    function emailReport() {
        var params = window.location.search;
        var url = "scripts/someScript.php" + params;
        ajaxwl(url, false, null, function() {
            alert("Report successfully sent.");
        });
    }
//]]></script>
<h2>Analyst Report</h2>

ajaxwl() 只是 jQuery.ajax() 的包装器,并且在整个站点的数百个地方使用都没有问题。

IE 声称语法错误(它没有详细说明是什么类型)在带有 </script> 标记的行的第 23 个字符处。这特别奇怪,因为该行只有 15 个字符。但是,如果我检查 IE8 开发人员工具中的假定位置,它实际上会将错误放在下一行 <h2> 标记的中间。

这是官方的 IE 错误信息:

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.1; MS-RTC LM 8)
Timestamp: Tue, 12 Jun 2012 21:19:38 UTC


Message: Syntax error
Line: 175
Char: 23
Code: 0

鉴于 IE 没有告诉我实际的错误消息,到目前为止我还无法在网上找到任何关于此的信息。 JSLint 也不会产生任何有用的东西,并且它在 Chrome 和 FF 中完美运行。我是否遗漏了一些明显的东西?


编辑:我的直觉是,尽管 IE 在上面的代码片段中报告了错误,但它实际上在其他地方死了。这似乎是共识。我想我会搜索页面,看看我是否幸运并找到错误。

最佳答案

IE 因未指定发生错误的文件或未正确指定而臭名昭著。尝试在 IE 调试器中运行它,看看错误是否完全不在另一个文件的第 175 行。

EDIT 调试器没有工作,所以你将不得不用困难的方式来做到这一点:保存页面到你的磁盘;将所有 Javascript 文件连接成一个大文件;从一个空白页中包含该文件。现在行号会有所不同,但在您拥有的唯一 JS 文件中是准确的。

我的预测:终端逗号。下面这行代码在 Javascript 中是合法的,但在 IE“JScript”中是不合法的。

 var x = [ 0, ];

"Steve Jobs is dead and Bill Gates is alive because there is no god. But 100 years from now, Jobs will be remembered with Edison and Eli Whitney while Gates will be forgotten, because there is justice."

关于javascript - IE8 抛出 JavaScript 语法错误 - 在脚本之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005105/

相关文章:

jquery - IE8 XSS/Jquery 问题

javascript - 需要一些关于 jquery 中对话框的简单解释吗?

javascript - 使用 webgl 2.0、延迟着色、帧缓冲区对带有三 Angular 形网格的场景进行光线追踪

javascript - 输入以可靠地提交 html 表单

html - 链接在 Internet Explorer 中不起作用

javascript - Polyfill/fix 在 'function' 等保留的 JS 字上使用点符号

html - 具有固定布局 TABLE 和 TD 宽度百分比的 IE 7/8 错误

javascript - 在 localstorage 中保存 javascript 数据的最佳方法

javascript - 导入对象未定义

CSS 定位图像在彼此之上并制作中心栏