ilzxxx0 2019-05-05
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日