解决低版本IE下,console报错未定义

因为公司常常要求支持IE浏览器,测试人员会使用低版本的IE进行操作。
如果js代码中含有console.log进行调试,在低版本IE下会报错

错误如下

原因

低版本IE6/7/8/9浏览器是没有定义console对象的,所以代码会中断执行。

解决方法

添加如下代码定义console

;(function(g) {
    'use strict';
    var _console = g.console || {};
    var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'exception', 'error', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'];

    var console = {version: '0.2.0'};
    var key;
    for(var i = 0, len = methods.length; i < len; i++) {
        key = methods[i];
        console[key] = function (key) {
            return function () {
                if (typeof _console[key] === 'undefined') {
                    return 0;
                }
                // 添加容错处理
                try {
                    Function.prototype.apply.call(_console[key], _console, arguments);
                } catch (exp) {
                }
            };           
        }(key);
    }
    
    g.console = console;
}(window));

你可能感兴趣的:(解决低版本IE下,console报错未定义)