我遇到了一个奇怪的问题,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 在上面的代码片段中报告了错误,但它实际上正在其他地方死去。这似乎是共识。我想我会搜索页面,看看我是否幸运并找到错误。