Firebug可以运行我的网站吗?

时间:2009-09-11 19:41:30

标签: javascript error-handling firebug firefox3.5

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

我有一个适用于Firefox 3.0的脚本。有人指出该脚本在Firefox 3.5中不起作用,所以我试图让它起作用。实际上,脚本没有产生预期的结果,因此我安装了最新版本的Firebug,启用了console并刷新了页面。

哇,它有效。

没有错误,没有任何警告。

所以我禁用了控制台,然后它不再起作用了......

这里发生了什么? Firebug控制台以某种方式在Firefox中改变了一些使我的脚本工作的东西?有关下一步的建议吗?(除了要求未来的访问者安装Firebug ......)

4 个答案:

答案 0 :(得分:10)

是否可以像忘记在javascript中某处对console.log()的来电评论一样简单?

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

答案 1 :(得分:7)

听起来我觉得你有机会遇到线程问题,FireBug正在分析并可能减慢其中一个线程,以便在下一步解决之前有时间完成。

您是否正在使用ajax,还有什么东西在等待这个回复?或者你可能在加载一个依赖于DOM中其他东西的对象时或之后做某事?

更新: 对于那些现在陷入困境的人来说,JavaScript中的“线程”实际上只存在于抽象(web worker等)中。我误用了这个词。我真的在考虑在另一个准备就绪之前返回的异步操作。

答案 2 :(得分:6)

检入代码中的console.log(),console.debug()。如果未定义控制台(如预期的那样),调用window.console对象方法会抛出错误。

在大多数情况下,您可以轻松删除或评论该行。

答案 3 :(得分:0)

我为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();