找出是否有控制台可用

我想知道,如果控制台对象可用,我怎么能找出与JavaScript

我有问题,如果我忘记删除debugging输出像console.log('sthg')我在几个浏览器中,如果没有萤火虫,或类似,活跃的错误。

感谢帮助

在这个问题旁边,我对所有有关控制台对象的信息感兴趣。 有任何人的一些文件链接,或者呢? 这是一个标准吗? 等等…

检查属性是否存在为window的成员:

 if (window.console) { } 

在这个问题旁边,我对所有有关控制台对象的信息感兴趣。 有任何人的一些文件链接,或者呢? 这是一个标准吗? 等等…

查看Console API的Firebug文档 ; Chrome和Safari实现了大多数(但不是全部)列在那里的方法。 控制台中没有标准的定义,所以你需要testing每个浏览器,看它是否支持该function。

输出到控制台的一个简单而简单的方法如下:

 window.console && console.log('Debug message'); 

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

 var console = console || { "log": function(stuff) {} }; 

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

请注意,在我们之前(和之后),许多人写了类似的polyfills:

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

由firebug定义,IE8(需要用F12打开开发工具),Chrome等,但没有定义的规范。 有一个console.log包装 ,使它非常容易使用,跨浏览器日志解决scheme,所以如果控制台不存在,您的代码不会爆炸。

 try{ console.log("test") } catch(e){ console={}, console.log=function(a){} } 

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

在加载其他任何东西之前,我总是将其包含在我的HTML-header的顶部。 用console.debug进行debugging对我来说太长了。 我喜欢切换这些控制台function的使用。

不知道如何优化代码,但它总是做这个工作。

 (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); 

最简单的方法是:

 if (window.console){ console.log('do something'); } 

而不是只写:

 console.log('do something'); 

也许…

 if (console) { // do stuff }