找出控制台是否可用

时间:2011-02-09 14:37:25

标签: javascript debugging

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

我遇到的问题是,如果我忘记删除调试输出,例如console.log('sthg'),我会在多个浏览器中出现错误,如果没有萤火虫或类似的活动。

感谢您的帮助

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

8 个答案:

答案 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:

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

答案 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
}