Javascript 可以要求Firebug运行我的网站吗?

Javascript 可以要求Firebug运行我的网站吗?,javascript,error-handling,firebug,firefox3.5,Javascript,Error Handling,Firebug,Firefox3.5,我正在做一个新项目,它有一些复杂的javascript。我不能发布任何代码,所以这不是我的问题 我有一个在Firefox3.0中运行的脚本。有人指出,该脚本在Firefox3.5中不起作用,所以我正在努力让它起作用。实际上,脚本没有产生预期的结果,因此我安装了最新版本的Firebug,启用了控制台,并刷新了页面 哇,成功了 没有错误,警告,什么都没有 所以我禁用了控制台,然后它就不工作了 这是怎么回事?Firebug控制台以某种方式改变了Firefox中使我的脚本工作的东西?关于下一步有什么建议

我正在做一个新项目,它有一些复杂的javascript。我不能发布任何代码,所以这不是我的问题

我有一个在Firefox3.0中运行的脚本。有人指出,该脚本在Firefox3.5中不起作用,所以我正在努力让它起作用。实际上,脚本没有产生预期的结果,因此我安装了最新版本的
Firebug
,启用了
控制台
,并刷新了页面

哇,成功了

没有错误,警告,什么都没有

所以我禁用了控制台,然后它就不工作了


这是怎么回事?Firebug控制台以某种方式改变了Firefox中使我的脚本工作的东西?关于下一步有什么建议吗?(除了要求未来的访问者安装Firebug…

我觉得您可能有线程问题,Firebug正在分析并可能会减慢其中一个线程的速度,以便在下一步解决之前有时间完成

您是否可能正在使用ajax,并且有什么东西正在等待响应?或者,您可能正在加载依赖于DOM中其他内容的对象时或之后执行某些操作

更新:
对于那些现在遇到这个问题的人来说,JavaScript中的“线程”实际上只存在于抽象中(web工作者等)。我用错了这个词。我真的在考虑一个异步操作,它在另一个操作准备好之前返回

会不会像忘记在javascript中的某个地方注释对
console.log()的调用那样简单


如果您有挂起的引用,并且用户没有安装Firebug,您将得到一个运行时错误,该错误将停止脚本的执行。

请在代码中检查console.log()、console.debug()。如果console未定义(如预期的那样),则调用window.console对象方法会引发错误


在大多数情况下,您可以轻松地删除或注释这些行。

我为firebug编写了一个简单的包装器(我只使用debug,但它应该为您提供复制其他方法所需的内容),该包装器仅在控制台存在时写入,以便我可以使用firebug,不需要去注释我的调试语句,它不会破坏没有它的人的网站

如果使用此代码,请使用fbconsole.debug而不是console.debug。您将永远不会遇到此问题:

function fbconsole () {
    this.debug = function (val) {
        if(typeof(console) !== 'undefined' && console != null) {
            console.debug(val);
            }
        }
    }
var fbconsole = new fbconsole();

这是有道理的,因为firefox的javascript引擎似乎在每一个版本中都会变得更快。我使用的是ajax是的,但我认为Justin对控制台的看法是正确的。log():)在使用ajax时检查一下是个好主意。我曾经在谷歌地图上使用AJAX时遇到过类似的问题,我提醒了变量是什么,这神奇地修复了代码。多个秃顶点之后,当警报窗口打开时,它出现了,冻结了下一步,它有时间加载并修复了我的线程问题。Javascript没有线程,是吗?您可以在稍后的时间点执行异步代码,但它仍然不是多线程的。Javascript不使用传统意义上的“线程”,除非您通过xhmtlrequest之外的提取来指定它们,但异步加载问题在概念上是类似的。所以更具体地说,一个“时间”问题,在这种情况下也许。是的,这听起来也很可能。我想了一会儿,但我认为,既然你一开始没有安装firebug,它就不会在那里,但在阅读了这个答案后,我才意识到,如果你复制并粘贴代码,有一个很好的机会,一些调试就在那里+1我不知道,我必须让开发人员相信他能够识别出这样一个明显的错误。我正在阅读它,同时我觉得自己很愚蠢:)。然而,穆塞克斯第一次回答的是什么……这也发生在我身上
console.log
将在
console
不可用时破坏一切,这在大多数浏览器中都很常见。@ropstah这并不重要……但请检查您的数学。这是最后一个答案,不是第一个。哎呀,你说得对,我读穆塞克斯的《8分钟前》和你的《9分钟前》贾斯汀时确实受到了影响……)另一个好主意是在javascript中包含firebugx.js,它会在窗口中添加一个假的console对象,忽略所有的console.log调用。很好,但我认为最好在任何启动之前删除调试语句:)