Javascript 调试和IE仅JS错误

Javascript 调试和IE仅JS错误,javascript,internet-explorer-7,Javascript,Internet Explorer 7,我有一个IE唯一的错误,可能是因为做了流浪角色。我收到这个弹出消息,但我不知道错误在哪里。在FF中,各种扩展准确地指示错误的位置,但在FF中,这不是一个选项。我将如何跟踪此错误发生的位置?IE7 更新 IE8似乎在调试方面做得更好,并且有一个浏览器模式可以被视为IE7。对于那些对错误感兴趣的人来说,这是由frmUsername不存在引起的 window.onload = function() { document.getElementById('frmLogin').frmUse

我有一个IE唯一的错误,可能是因为做了流浪角色。我收到这个弹出消息,但我不知道错误在哪里。在FF中,各种扩展准确地指示错误的位置,但在FF中,这不是一个选项。我将如何跟踪此错误发生的位置?IE7

更新 IE8似乎在调试方面做得更好,并且有一个浏览器模式可以被视为IE7。对于那些对错误感兴趣的人来说,这是由frmUsername不存在引起的

window.onload = function() {
        document.getElementById('frmLogin').frmUsername.focus();
    }
在IE8打开ie7时被忽略 单击f12 单击“开始调试”

编辑: 下载此文件:


然后按照上面的步骤操作。

错误消息会告诉您发生错误的行。在文本编辑器中打开URL的响应并查看该行。

安装IE8。它有更好的调试器和IE7模式。如果幸运的话,同样的错误也会发生,您将能够追踪到它。

您可以尝试将Firebug Lite添加到html中,并在IE7中进行调试


如果看不到任何代码,就无法确定,但我愿意打赌我能猜出错误是什么

我想你已经触犯了法律

在Javascript中,您可能有一个如下所示的数组:

var mydata = [160,
              431,
              117,
              84,
              ];
这将在所有浏览器中完美运行。。。。除了IE

…它将在IE中给出的错误正是您描述的错误

原因是什么?它是
84
后面的逗号(或者你的最后一项是什么)。如果它是一个对象结构而不是一个数组,那么它将是相同的

从技术上讲,IE拒绝使用逗号是正确的——Javascript规范中不允许使用逗号。但所有其他浏览器都乐于忽略它,因此您可以在所有浏览器中使用这种代码,但在一个几乎不可能调试的浏览器中则不然


希望这将足以帮助您定位问题。更多信息(加上一些有趣的图片)请访问上面链接的网站:

你是说IE8还是IE9。IE7没有调试器。:)好了,开发者工具栏只不过是一个DOM检查器。谢谢,我在IE7中尝试了调试器,但没有得到更多信息。升级到IE8你能拿到IE8吗?IE8有一个内置调试器的IE7模式。类似于
{a:42,b:21,}
(注意21后面的逗号)。这在IE中会导致错误,但在其他浏览器中不会。不过,可以查看附加到页面的所有JavaScript文件。对于5-10个文件,这可能没问题。@katspaugh可能是URL下的文件,在他的URL中ed209用红色覆盖screenshot@hnatt那只是一个顶级域名,它是homepage@ed209,那么我的答案是错的。我支持katspaugh的回答。尝试安装IE8,将其切换到与IE7兼容,重新创建并调试错误。不幸的是,Firebug Lite不包含调试器:-((正如你链接的页面上所记录的)这是我的第一个猜测,但事实证明我是在寻找一个不存在的html元素。这似乎是IE7上的错误,而不是IE8!呵呵。好吧,逗号是这种错误的最常见的原因。但是追踪它做得很好(作为记录,如果其他人没有建议的话,我也会推荐IE7兼容模式下的IE8调试器)当某些对象中的属性名为
default
时,我在IE中遇到了这样的错误。Firefox没有问题。