找出控制台是否可用

hel*_*lle 44 javascript debugging

我想知道,如果控制台对象可用,我如何找到javascript

我有一个问题,如果我忘记删除调试输出,如console.log('sthg')我在几个浏览器中获得错误,如果没有firebug,或类似,活动.

感谢帮助

在那个问题旁边,我对有关控制台对象的所有信息感兴趣.有任何人的文档链接,或左右?这是标准吗?等等...

And*_*y E 63

检查属性是否为以下成员window:

if (window.console) {
}
Run Code Online (Sandbox Code Playgroud)

在那个问题旁边,我对有关控制台对象的所有信息感兴趣.有任何人的文档链接,或左右?这是标准吗?等等...

查看Console APIFirebug文档 ; Chrome和Safari实现了大多数(但不是全部)列出的方法.没有标准定义控制台中应该包含的内容,因此您需要测试每个浏览器以查看它是否支持该功能.


Mat*_*dan 31

安全地输出到控制台的一种简单而简单的方法如下:

window.console && console.log('Debug message');
Run Code Online (Sandbox Code Playgroud)


cod*_*onk 7

这是我用的.请记住,我只是半心半意地支持不支持控制台的浏览器.我只使用console.log(),但你可以看到如何扩展它以支持console.dir(),console.info()等

var console = console || {
    "log": function(stuff) {}
};
Run Code Online (Sandbox Code Playgroud)

我喜欢它,因为调用它不会导致错误,但它返回[undefined],我认为这是合适的.

请注意,许多人在我们之前(以及之后)编写了类似的polyfill:

https://gist.github.com/search?q=console+%7C%7C+console


Rob*_*ond 6

firebug,IE8(需要用F12打开开发人员工具),Chrome等定义,但没有明确规定.有一个console.log包装器,使其成为一个非常易于使用的跨浏览器日志记录解决方案,因此如果控制台不存在,您的代码不会爆炸.


Nad*_*sin 5

try{
console.log("test")
}
catch(e){
console={},
console.log=function(a){}
}
Run Code Online (Sandbox Code Playgroud)

只需将它放在JS文件的顶部,然后使用console.log(); 没有任何担心浏览器错误,我在IE9中也有这个错误