我正在使用:
console.log()
在处理我的webapp时将消息记录到firefox(3.6.6)/ firebug的方法。当我在本地查看应用程序时,它工作正常,日志消息就可以了。当我将我的应用程序推送到我的实时服务器并查看该页面时,我收到了很多“控制台未定义”的错误。
我不太确定控制台对象是如何在第一时间解决的,因为我首先没有任何js包含它。使用控制台对象的正确方法是什么?
由于
-----------------编辑---------------------------- < / p>
是的我使用相同的浏览器(FF) - 我只是将项目推送到现场主机,我只在那里得到错误。但有些奇怪的是,现在有些控制台语句正在运行,其他语句仍然会出错。复制粘贴在这里作为完整性检查:
控制台未定义 [打破此错误] console.log(window.location);
控制台未定义 [打破此错误] console.log(farmAttrAsJson);
单击按钮时会记录上面的第二个语句。所以我第一次点击,得到了那个错误。等了几分钟,再次点击,然后记录好了。
答案 0 :(得分:6)
除非Firebug已打开,否则未在FF中定义控制台对象。
在Chrome中,它始终是定义的。
处理它的一种方法是定义它,如果它没有定义:
if(!window.console) console = {log: function() {}};
答案 1 :(得分:5)
我发现这个看起来更好 因为它具有所有控制台方法。不只是记录
(function(){
if (!window.console||!console.firebug){
var methods = [
"log", "debug", "info", "warn", "error", "assert",
"dir", "dirxml", "group", "groupEnd", "time", "timeEnd",
"count", "trace", "profile", "profileEnd"
];
window.console = {};
for (var i=0; i<methods.length; i++){
window.console[methods[i]] = function(){};
}
}
})();
答案 2 :(得分:0)
您无法再使用!console.firebug检测Firebug。
“控制台API以前实现了console.firebug属性。此属性已从Firebug 1.9.0中的API中删除,以防止站点检测用户是否安装了Firebug。”