2012-03-05 199 views
2
(function($){ $.fn.openlayers = function(mapElementId, options) { 
     alert(console.log); 
     console.log(options); 
     ... 
    } 
}); 

我试着去在一个JavaScript库扩展功能,但令我吃惊的,当我开始我意识到什么也没有被console.log记录..我知道正在执行的代码由于alert()正常触发。但是,来自警报功能的返回响应似乎是"function(){}",这是正确的吗?或者实际上是console.log和空函数?javascript:console.log不在这种情况下工作?

因此,在这里发生了什么以及为什么console.log不工作的任何线索?


我想我可能找到了罪魁祸首。林用的OpenLayers JavaScript文件的工作,我可以看到他们的图书馆设置

OpenLayers.Console={log:function(){},... 

然而,这是大写的控制台,但也许不会有所作为?我也必须在OpenLayers的范围内,我无法真正看到我的身影。所以我仍然有点困惑。但是,这将解释为什么我看到一个空函数


这是输出,我从哪里加载此错误发生后应用在Chrome的调试窗口中键入“控制台”获得。

assert: function(){} 
count: function(){} 
debug: function(){} 
dir: function(){} 
dirxml: function(){} 
error: function(){} 
group: function(){} 
groupEnd: function(){} 
info: function(){} 
log: function(){} 
profile: function(){} 
profileEnd: function(){} 
time: function(){} 
timeEnd: function(){} 
trace: function(){} 
warn: function(){} 
__proto__: Object 

所以它似乎是什么,可能是openlayers JavaScript重写本地控制台。

+1

难道你不在范围内达到'console'吗?你尝试过'window.console.log'吗? – 2012-03-05 09:16:26

+0

'console.log'不是一个空的函数。你使用的是什么浏览器? – 2012-03-05 09:16:35

+0

chrome和firefox都会在alert()响应中返回一个空函数。 window.console.log,返回相同的响应以及... – netbrain 2012-03-05 09:19:24

回答

1

在之前添加以下行OpenLayer脚本告诉它不要覆盖控制台功能。

<script type="text/javascript"> 
    console.firebug=true; 
</script> 
+0

呃,不是我个人,而是从事这个项目的其他人可能有。所以这很可能是这种情况。我看着它。 – netbrain 2012-03-05 09:32:39

+0

您是否找到解决此问题的解决方案?我有完全相同的问题 – 2012-11-16 10:29:10

+0

更新了答案! – dragon 2012-11-17 19:35:53

1

只要点击ALL,你一定会看到console.log输出。

http://i.stack.imgur.com/peduZ.png

希望它可以帮助... !!!

相关问题