Javascript最佳实践:处理特定于Firebug的代码

Dan*_*rzo 12 javascript jquery firebug

Firebug无疑是javascript调试的绝佳工具; 我广泛使用console.log().

我想知道我是否可以将Firebug特定的代码留在生产中.什么是最佳做法?评论调试代码?

Ton*_*ler 14

如果在生产代码中保留console.log()调用,那么使用Internet Explorer访问该站点的人将出现JavaScript错误.如果这些人配置了额外的调试工具,那么他们将看到讨厌的对话框或弹出窗口.

快速搜索显示该线程讨论了检测Firebug控制台是否存在的方法:http://www.nabble.com/Re:-detect-firebug-existance-td19610337.html


Gar*_*vis 14

之前被这个咬了过去.理想情况下,所有的console.log语句都需要在生产之前删除,但这很容易出错,开发人员总是忘记或只在FF + Firebug中测试.

可能的解决方案是创建一个虚拟控制台对象(如果尚未定义).

if( typeof window.console == 'undefined'){
    window.console = {
        log:function(){}
    };
}
Run Code Online (Sandbox Code Playgroud)

需要注意的一点是:在10.4版本的Safari中,任何对console.log的调用都会引发安全异常,因为控制台对象是Mac OS Dashboard小部件中使用的保留对象.不确定是不是这样,今晚会检查.


ann*_*ata 8

我个人之前修改过我的压缩器,以便在压缩前去掉控制台参考.添加正则表达式几分钟就可以节省一生的麻烦.