13

我有一个包含大量 javascript 代码的 jsp。每当页面出现javascript错误时,在IE浏览器的状态栏中显示,报告包含错误的行号,与实际包含错误的行号不匹配。我正在右键单击>查看源代码以查找报告的行号。但是该行不包含错误。我认为,错误在其他行。报告错误行号的原因可能是什么。

4

5 回答 5

7

如其他答案所述,IE 不善于报告错误的行号。但是,IE8 及更高版本中的内置调试器(按 F12)更有帮助,所以我建议您尝试一下。

于 2010-01-06T09:17:58.537 回答
6

经过多次试验,我发现了这个问题。希望这对一些面临这个令人沮丧的问题的人有用。

RightClick>View Source 是浏览器看到的呈现页面的代码。然而,这还不是全部。该页面还可以有其他对 css ans js 文件的 HTTP 请求。这就是我的情况。错误出现在导入的(不包含;如果包含它,错误将出现在代码中)js 文件中。报告的行号是相对于那个 js 文件的。

然而,回想起来,我发现这是正确的,因为导入的文件单独存储在浏览器缓存中,因为它们是对 Web 服务器的独立 HTTP 请求。因此不应出现在 RightClick>View Source code 中。

潜在问题: 但是,尽管在我的情况下,报告的单个 js 文件中的行号被发现是正确的,但这可能并不总是正确的。在大多数企业应用程序中,通常会缩小 js 和 css 以减少字节占用。因此,您可能在 IDE 中查看的 js 文件与浏览器看到的不同。因此,行号可能会有所不同。行号将是浏览器看到的文件的压缩版本。

IE JAVASCRIPT DEBUGGING: 我找到了这个页面,它承诺在 IE 环境中提供调试器环境(尽管并不复杂)。

http://jonathanboutelle.com/2006/01/16/how-to-debug-javascript-in-internet-explorer/ 我没有尝试过,因为我没有安装完整的 Office 软件包。

于 2010-01-06T10:42:48.160 回答
3

Internet Explorer 在报告 Javascript 行号方面很糟糕——通常报告的行号是 Javascript<script>标记在 HTML 文件中开始的位置,而不是 Javascript 文件中的位置行号。只依赖“错误报告”,行号对 IE 毫无价值。

使用其他浏览器,例如安装了 Firebug 扩展的 Firefox,或者内置了 Web Inspector 的 Google Chrome,这也很棒。

于 2010-01-06T09:09:53.640 回答
1

这是一篇不错的文章

调试 JavaScript:了解 JavaScript 错误消息

尤其是行号,事实证明它比您预期的要少得多。浏览器在确定行号方面有所不同,因此不能可靠地报告与源代码相关的错误发生的正确行号。例如,Internet Explorer 会报告与浏览器自己内部呈现的文档源相关的行号,这可能与源文件匹配也可能不匹配!Firefox 更可靠地报告错误的位置,并在适用的情况下报告发生错误的脚本文件。但是,Firefox 不会向您提供有关导致错误的元素(称为“调用者”)的详细信息。此信息可用于快速跟踪错误原因,

于 2010-01-06T09:10:19.817 回答
-1

如果您想获得错误的确切原因和位置,并且如果您想执行大量的 javascript 调试,我建议您使用FireBug

于 2010-01-06T09:06:33.623 回答