2012-03-05 166 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

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