为什么我在Firefox中没有错误来源

时间:2009-11-09 03:23:06

标签: javascript firefox

Firebug控制台给了我:

------------------------------------------
(X) 0
    no source for No element with id 'inline_gallery_image_false' found)
------------------------------------------

当我点击此错误时,我得到一个空白的源视图窗口。 “脚本”选项卡中的“堆栈”窗格也会显示为空白。

Firefox 3.5.5 + Firebug 1.4.5。所有其他扩展程序都已禁用。

我已经打开'停止所有错误'和'显示Javascript错误'和'显示错误的堆栈跟踪',但我得到的是上面显示的错误。奇怪的是谷歌搜索没有任何帮助。

基本上我知道错误是由于传递给外部JS文件中的函数的错误参数,但是我想知道调用它的函数以及发送错误参数的方式。我也想知道为什么它不会显示来源,甚至不知道错误是哪个文件。

2 个答案:

答案 0 :(得分:1)

如果您知道如何重复错误,那么只需在该部分放置一个断点,然后开始逐步完成。在某些时候,您将完全跳出代码,或者它将退出,但您将开始弄清楚导致错误的原因。

您似乎正在尝试访问不存在或不在DOM中的元素。您可能尝试使用设置innerHTML创建元素,但尚未让浏览器进行DOM更改。

你能解释一下这发生了什么事吗?你想做什么,你期望发生什么?

答案 1 :(得分:1)

我注意到标准的Firefox控制台出现了同样的错误,所以这个问题毕竟不是Firebug的问题。当我点击错误来查看来源时,我得到:

Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIWebNavigation.loadURI]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: chrome://global/content/viewSource.js :: viewSource :: line 221"  data: no]

更新:搜索后我发现另一个网站有JS错误。打开源视图后,我得到一个空白页面:

Error: [Exception... "Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIRequest.name]"  nsresult: "0x80004001 (NS_ERROR_NOT_IMPLEMENTED)"  location: "JS frame :: file:///D:/Apps/Firefox3.5/components/nsLoginManager.js :: anonymous :: line 328"  data: no]
Source File: file:///D:/Apps/Firefox3.5/components/nsLoginManager.js
Line: 328

看起来非常清楚一些扩展或插件搞砸了我的FF源视图。我要从头开始重新安装。因为很明显这不是一个编程问题,所以随时关闭。

更新:原来是编程错误。罪犯是这行代码:

if (isStrict && !o) throw new Error(0,"No element with id '" + ref + "' found");

WTF在那里是0?不知道。我必须遵循一个狡猾的教程,因为当我查看Error构造函数时,第一个参数应该是消息字符串。第二个参数应该是违规文件的URL(可选),因此FF正确地认为文件“No element with ...”中有一个名为“0”的错误。