为什么Firefox 3会破坏console.log

AnA*_*ice 11 javascript firefox firebug firefox-3

我有以下内容:

console.log (a.time_ago() + ' ' + b.time_ago());
Run Code Online (Sandbox Code Playgroud)

这在FireFox 3中有所突破,这意味着当FF在JS中击中该行时,它就不会再进一步​​了.奇怪的是,如果我打开Firebug它不会破坏并继续正常.一些firebug如何防止这个问题?

我对这个感到困惑.关于为什么console.log会破坏firefox 3的任何想法,但是如果firebug是打开的话不是吗?

谢谢

arn*_*rhs 30

这不仅仅是Firefox.您的代码将停止在每个浏览器中运行(除了Chrome和Safari之外(在某些情况下),因为它们内置了console.log()及其开发人员工具.)

这是因为当你没有打开firebug时,没有定义对象"console".您应该注意不要在代码中保留console.log()函数,否则它将在每个浏览器中中断.


我想补充说我有时使用过这个函数:

function log () {
    if (typeof console == 'undefined') {
        return;
    }
    console.log.apply(console, arguments);
}
Run Code Online (Sandbox Code Playgroud)

然后你可以简单地打电话:

log(somevar, anothervar);
Run Code Online (Sandbox Code Playgroud)

它将以与console.log相同的方式工作,但如果未加载firebug则不会失败(并且输入的时间更短:P)

干杯