找出是否有控制台可用
我想知道,如果控制台对象可用,我怎么能找出与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:
由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 }