Firebug无疑是javascript调试的绝佳工具; 我广泛使用console.log().
我想知道我是否可以将Firebug特定的代码留在生产中.什么是最佳做法?评论调试代码?
如果在生产代码中保留console.log()调用,那么使用Internet Explorer访问该站点的人将出现JavaScript错误.如果这些人配置了额外的调试工具,那么他们将看到讨厌的对话框或弹出窗口.
快速搜索显示该线程讨论了检测Firebug控制台是否存在的方法:http://www.nabble.com/Re:-detect-firebug-existance-td19610337.html
之前被这个咬了过去.理想情况下,所有的console.log语句都需要在生产之前删除,但这很容易出错,开发人员总是忘记或只在FF + Firebug中测试.
可能的解决方案是创建一个虚拟控制台对象(如果尚未定义).
if( typeof window.console == 'undefined'){ window.console = { log:function(){} }; }
需要注意的一点是:在10.4版本的Safari中,任何对console.log的调用都会引发安全异常,因为控制台对象是Mac OS Dashboard小部件中使用的保留对象.不确定是不是这样,今晚会检查.
我个人之前修改过我的压缩器,以便在压缩前去掉控制台参考.添加正则表达式几分钟就可以节省一生的麻烦.