我想知道,如果控制台对象可用,我如何才能找到 javascript ?
我遇到的问题是,如果我忘记删除调试输出,例如console.log('sthg')
,我会在多个浏览器中出现错误,如果没有萤火虫或类似的活动。
感谢您的帮助
在该问题旁边,我对有关控制台对象的所有信息感兴趣。有任何人的文档链接,或左右?这是标准吗?等等......
答案 0 :(得分:61)
检查属性是否为window
的成员:
if (window.console) {
}
在该问题旁边,我对有关控制台对象的所有信息感兴趣。有任何人的文档链接,或左右?这是标准吗?等等......
查看Firebug documentation for the Console API; Chrome和Safari实现了大多数(但不是全部)列出的方法。没有标准定义控制台中的内容,因此您需要测试每个浏览器以查看它是否支持该功能。
答案 1 :(得分:31)
安全输出到控制台的一个简单而简单的方法如下:
window.console && console.log('Debug message');
答案 2 :(得分:7)
这是我使用的。请记住,我只是半心半意地支持不支持控制台的浏览器。我只使用console.log(),但你可以看到如何扩展它以支持console.dir(),console.info()等
var console = console || {
"log": function(stuff) {}
};
我喜欢它,因为调用它不会导致错误,但它会返回[undefined],我认为这是合适的。
请注意,在我们之前(和之后)的许多人都写过类似的polyfills:
答案 3 :(得分:6)
由firebug,IE8(需要使用F12打开开发人员工具),Chrome等定义,但没有明确规定。有一个console.log wrapper使它成为一个非常易于使用的跨浏览器日志记录解决方案,因此如果控制台不存在,您的代码就不会爆炸。
答案 4 :(得分:5)
try{
console.log("test")
}
catch(e){
console={},
console.log=function(a){}
}
将它放在JS文件的顶部,然后使用console.log();没有任何担心浏览器错误,我在IE9中也有这个错误
答案 5 :(得分:3)
在我加载任何其他内容之前,我总是将其包含在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);
答案 6 :(得分:2)
最简单的方法是:
if (window.console){
console.log('do something');
}
而不仅仅是写作:
console.log('do something');
答案 7 :(得分:-4)
也许...
if (console) {
// do stuff
}