是否有任何好的或可靠的方法来确定JavaScript错误仅使用Internet Explorer错误消息?

时间:2008-10-07 15:29:45

标签: javascript debugging internet-explorer

我正在编写一个应用程序,由于各种原因涉及Internet Explorer(IE7,用于记录),ActiveX控件和大量的JavaScript,它分布在多个.js包含。

我们的一位远程测试人员遇到错误消息,并且IE的错误消息显示了以下内容:

Line: 719
Char: 5
Error: Unspecified Error
Code: 0
URL: (the URL of the machine)

只有一个JavaScript文件超过719行,第719行是一个空白行(在本例中)。

项目中涉及的HTML或其他文件都没有719行或更多行,但生成的HTML(它是服务器端包含的东西),至少从“查看源”中显示的IE确实有719或更多行 - 但是第719行(在这种情况下)是一个结束表行标记(换句话说,没有JavaScript)。

在这种情况下,“查看生成的源”的结果仅为310行。

我想可能整个页面,其中与HTML其余部分内联的JavaScript文件的内容可能是错误所指的位置,但我不知道有什么好的方法可以查看会是什么,

因此,如果来自Internet Explorer 的JavaScript错误,其中行号是唯一的提示,但该页面实际上分布在多个文件中?

更新:由于遇到此问题的用户是远程的并且出于各种网络原因,使用Visual Studio 2008(具有很棒的JavaScript调试功能)进行调试,这个问题更加严重。 ) 是不可能的。我只能让我们中的一个人看一下这个来源,试图找出它正在酝酿的代码行。

更新2:真正的答案(如下所示)似乎是“不,不是真的”。尽管如此,罗伯特·J·沃克(Robert J. Walker)关于它被一个人关闭的事实确实让我指出了正确的方向,因为我认为这是违规行。但是,因为那不是我称之为好或可靠的(IE的错,而不是Robert J. Walker的错),我将接受“不,不是真的”答案。我不确定这是否是正确的SO礼仪。如果不是通过评论,请告诉我。

10 个答案:

答案 0 :(得分:5)

简而言之。并不是的。尝试首先在FF中找到错误,如果失败,您可以使用Visual Web Developer获得几乎同样好的调试器。调试IE大部分都很糟糕。

答案 1 :(得分:3)

我发现调试javascript的最好方法是在我认为代码破坏的地方附近添加几条Response.Write()或警报消息。未显示的写入或警报最接近代码的有问题区域。

我是这样做的,因为我没有找到一种更简单的方法。

更新:如果您使用这种调试方法,您也可以使用写入/警告来处理变量的内容。

答案 2 :(得分:3)

IE7中的Web开发人员工具栏可以为您提供渲染的源视图。

View > Source > Dom (Page)

当您考虑IE提供的行号错误时,这可能会更准确。

答案 3 :(得分:3)

提示:我发现许多IE错误消息行号被关闭了一个!

答案 4 :(得分:2)

在您的服务器上为该页面安装firebug lite

<script type='text/javascript' 
    src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'>
</script>

您可以使用

登录虚拟控制台
firebug.d.console.log("stuff and things")
firebug.d.console.dir( {returnedObject:["404", "Object Not Found"]} )

按F12键,让您的远程测试人员为您提供更多详细信息。

我有点怀疑那里有一个未终止的字符串或一个不匹配的括号或括号。

答案 5 :(得分:2)

不,没有办法让内置的异常消息变得更少。

相反,您需要在IE上使用调试器。我找到的最好的教程是:

http://www.berniecode.com/blog/2007/03/08/how-to-debug-javascript-with-visual-web-developer-express/

按照这些说明操作,当出现错误或异常时,您将在正确的文件中显示确切的行。您还可以在当前范围中看到变量的值,并且可以设置“监视”项以帮助您进行调试。

除此之外,如果你需要像Firebug一样进行日志记录和CSS Cascade检查,我在DebugBar和JSCompanion上有很好的结果:

http://www.debugbar.com/ http://www.my-debugbar.com/wiki/CompanionJS/HomePage

答案 6 :(得分:1)

尝试Firebug。我可用于IE:http://getfirebug.com/lite.html

答案 7 :(得分:1)

您是否检查过使用Firebug的Firefox中是否也存在此错误?这将是我尝试找出此错误发生位置的第一步。

如果在Firefox中不存在,那么我将继续在IE中启用脚本调试。

答案 8 :(得分:1)

我唯一的建议:不要像这样使用IE进行调试。这是主流浏览器中最糟糕的:我尝试使用Firefox(使用Firebug)或Chrome / Safari来处理大多数问题。

如果您绝对必须使用IE,请安装IE Developer Toolbar(对JavaScript错误似乎没什么帮助),和/或安装脚本调试程序

答案 9 :(得分:0)