我在写一个插件。为此,我将记录一些内容,例如警告,其他内容等。要记录它们,我将使用控制台,但是如果某些浏览器不支持控制台,则可能会出错。要处理此错误,我正在考虑使用以下代码:

    if (typeof console == 'undefined') console = {};
if (typeof console.log == 'undefined') console.log = function() {};
if (typeof console.debug == 'undefined') console.debug = function() {};
if (typeof console.info == 'undefined') console.info = function() {};
if (typeof console.warn == 'undefined') console.warn = function() {};
if (typeof console.error == 'undefined') console.error = function() {};

这项工作正确吗,还是有更好的选择?

最佳答案

您正在正确地处理它。但是,您可以将其缩短一点:

if(typeof console === "undefined") {
    console = {
        log: function() { },
        debug: function() { },
        ...
    };
}

这使您可以使用console.log/console.debug etc,而无需先检查是否定义了控制台对象。如果您正在记录日志,我建议始终包含此代码段,因为很容易忘记删除它,如果没有控制台,它将破坏您的站点。

08-18 16:17
查看更多