javascript IE浏览器下console未定义、console.log报错解决方案

javascript IE浏览器下console未定义、console.log报错解决方案

================================

©Copyright 蕃薯耀 2019年5月5日

一、问题描述:

当在IE浏览器8、9未打开浏览器的控制台时,使用

console.log('aa');

会出现console“未定义”的错误。

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

二、解决方案

1、方式一:输出前先判断有没有window.console对象,有则输出。

if(window.console){
  console.log("xxx");
}

 或者这样写(网上找的,和上面的原理一样):

window.console && console.log('xxx');

2、方式二:在没有定义window.console对象时,定义一个对象返回,避免console对象未定义

window.console = window.console || (function(){
    var c = {}; 
    c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function(){};
    return c;
})();

 在console.log调用前定义上面的方法。

使用方式二比较好,方便以后调试和IE浏览器控制台输出。其实可以结合方式一、方式二一起用,即先定义方法,后面调用再判断对象存在不存在,存在后再使用,但一般不需要这样,有点麻烦。

================================

©Copyright 蕃薯耀 2019年5月5日

相关推荐