使用带有firebug的console.log()可以在本地使用,但在发布到我的实时站点时则不行

时间:2010-07-16 14:07:51

标签: javascript firebug

我正在使用:

console.log()

在处理我的webapp时将消息记录到firefox(3.6.6)/ firebug的方法。当我在本地查看应用程序时,它工作正常,日志消息就可以了。当我将我的应用程序推送到我的实时服务器并查看该页面时,我收到了很多“控制台未定义”的错误。

我不太确定控制台对象是如何在第一时间解决的,因为我首先没有任何js包含它。使用控制台对象的正确方法是什么?

由于

http://getfirebug.com/logging

-----------------编辑---------------------------- < / p>

是的我使用相同的浏览器(FF) - 我只是将项目推送到现场主机,我只在那里得到错误。但有些奇怪的是,现在有些控制台语句正在运行,其他语句仍然会出错。复制粘贴在这里作为完整性检查:

  

控制台未定义   [打破此错误] console.log(window.location);

     

控制台未定义   [打破此错误] console.log(farmAttrAsJson);

单击按钮时会记录上面的第二个语句。所以我第一次点击,得到了那个错误。等了几分钟,再次点击,然后记录好了。

3 个答案:

答案 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。”

Console API help on Firebug wiki