我在想,如何找到與javascript如果控制檯對象可用?找出是否有控制檯可用
我有問題,如果我忘記刪除調試輸出像console.log('sthg')
我在幾個瀏覽器中得到錯誤,如果沒有螢火蟲或類似的活動。
感謝您的幫助
旁邊問題我感興趣的有關控制檯對象的所有信息。有任何人的一些文件鏈接,或者如此?這是一個標準嗎?等等...
我在想,如何找到與javascript如果控制檯對象可用?找出是否有控制檯可用
我有問題,如果我忘記刪除調試輸出像console.log('sthg')
我在幾個瀏覽器中得到錯誤,如果沒有螢火蟲或類似的活動。
感謝您的幫助
旁邊問題我感興趣的有關控制檯對象的所有信息。有任何人的一些文件鏈接,或者如此?這是一個標準嗎?等等...
檢查屬性存在爲window
成員:
if (window.console) {
}
旁邊問題我感興趣的有關控制檯對象的所有信息。有任何人的一些文件鏈接,或者如此?這是一個標準嗎?等等......
查看Firebug documentation for the Console API; Chrome和Safari實施了大多數(但不是全部)列在那裏的方法。有沒有標準定義控制檯應該是什麼,所以你需要測試每個瀏覽器,看看它是否支持該功能。
也許......
if (console) {
// do stuff
}
這會在未定義`console`的瀏覽器中引發錯誤。 – 2011-02-09 14:40:50
是的......已經試過這個:-) – helle 2011-02-09 15:14:40
通過firebug定義,IE8(需要與F12打開開發人員工具),鉻等,但有沒有爲它定義的規範。有一個console.log wrapper,使它非常容易使用,跨瀏覽器日誌解決方案,所以如果控制檯不存在,您的代碼不會爆炸。
輸出到控制檯的一個不錯的簡單和短期的方式安全地如下:
window.console && console.log('Debug message');
我總是包括這在我的HTML頭的頂部之前,我加載任何東西。使用console.debug進行調試對我來說太長了。我喜歡切換這些控制檯功能的用法。
不知道代碼是如何優化的,但它總能完成這項工作。
(function() {
var consoleDisabled = false;
if (consoleDisabled) {
window.console = undefined;
}
if (window.console == undefined) {
window.console = {
debug: function() {
return true;
},
info: function() {
return false;
},
warn: function() {
return false;
},
log: function() {
return false;
}
}
}
debug = (function(args) {
window.console.debug(args);
});
info = (function(args) {
window.console.info(args);
});
warn = (function(args) {
window.console.warn(args);
});
log = (function(args) {
window.console.log(args);
});
})();
debug(somevar);
info(somevar);
warn(somevar);
log(somevar);
try{
console.log("test")
}
catch(e){
console={},
console.log=function(a){}
}
只是把它放在你的JS文件的頂部,然後使用的console.log();沒有任何擔心瀏覽器錯誤,我也有這個錯誤在IE9
這裏是我使用的。請記住,我只是半心半意地支持不支持控制檯的瀏覽器。我只用不完的console.log(),但你可以看到它是如何進行擴展以支持console.dir(),console.info()等
var console = console || {
"log": function(stuff) {}
};
我喜歡它,因爲調用它不導致錯誤,但它返回[undefined],我認爲這是適當的。
注意,前(後)很多很多的人我們已經寫了類似的polyfills:
簡單的方法是:
if (window.console){
console.log('do something');
}
,而不是僅僅寫:
console.log('do something');
什麼是chromes和IEs控制檯? :-) – helle 2011-02-09 15:15:47
@helle:正如我所說的,Chrome實現了大部分的Firebug Console API方法。 IE實現了一些基本的,比如`warn`,`error`,`info`等,但是它並沒有實現它們,並且似乎沒有文檔列表,所以你必須嘗試一下你自己。 – 2011-02-09 15:23:35
@AndyE你能解釋爲什麼檢查該屬性存在於窗口不如使用typeof強壯嗎?爲什麼我們不應該直接檢查windows.console變量,或者甚至只是在其他答案中調用全局控制檯? – matpop 2015-08-13 14:08:09