IE中的"无效参数"错误,在不存在的行号中

Dan*_*ola 7 javascript debugging internet-explorer

我在IE 6中收到以下错误:

Line: 454  
Char: 13  
Error: Invalid Argument  
Code: 0  
URL: xxxxx/Iframe1.aspx 
Run Code Online (Sandbox Code Playgroud)

我无法为我的生活找到导致这种情况的原因.

这只发生在我有一个主页面有几个IFrame的情况下,它只发生在我有一个特定的IFrame(错误消息中的URL指向的那个),并且IFrame在时间不可见时加载.
我把它缩小到那里,但我还是找不到更具体的东西......

有问题的IFrame在其HTML中没有454行,也没有它引用的任何JS文件.

我尝试将VS附加到iexplore.exe作为调试器,并在发生错误时中断,但随后告诉我"当前位置没有可用的源代码"...

关于如何追逐这个的任何建议?


更新:我通过蛮力发现了这个问题,基本上,将所有内容评论出来并随意取消注释......
但问题仍然存在:当IE报告错误的行号/文件时,找出错误位置的合理方法是什么?

Vil*_*lx- 11

IE的Javascript引擎在调试方面很恶心.您可以尝试在"高级选项"中启用脚本调试,然后如果安装了Visual Studio,它将跳转到错误位置...如果您很幸运.其他时候你没有得到任何东西,特别是如果代码是eval()'ed.

关于这些行号的另一个问题是它没有反映出错误发生在哪个文件中.我曾经遇到过行号实际上是正确的情况,但它是在链接的.js文件中,而不是主文件.


Bry*_*isi 6

尝试使用Microsoft Script Debugger或DebugBar(http://www.debugbar.com),这可能会为您提供更好的IE6调试工具.他们总是帮助我使用IE6.

此外,这是在任何较新版本的IE或IE6中发生的吗?


Nic*_*itz 5

在没有实例的情况下调试它几乎是不可能的,但是在Internet Explorer中经常导致"无效参数"错误的一件事是尝试为样式属性设置不正确的值.

所以类似于:

document.getElementById("foo").style.borderWidth = bar + "px";
Run Code Online (Sandbox Code Playgroud)

当"bar"的值为null或未定义,或者是字符串"grandma"时,将导致它,因为"grandmapx"不是borderWidth样式属性的有效值.