`

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

阅读更多

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

 

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

©Copyright 蕃薯耀 2019年5月5日

http://fanshuyao.iteye.com/

 

一、问题描述:

当在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日

http://fanshuyao.iteye.com/

1
0
分享到:
评论
1 楼 蕃薯耀 2019-05-05  
console未定义
console.log报错解决方案
console.log未定义
javascript IE浏览器下console未定义

======
蕃薯耀

相关推荐

    IE中兼容模式下JSON未定义

    在IE浏览器中,有时会遇到“JSON未定义”的错误,特别是在使用兼容模式或者较旧版本的IE时。这是因为JSON(JavaScript Object Notation)是ECMAScript 5引入的一个内置对象,而在IE8及以下版本中并未原生支持JSON。...

    consolepolyfill能放心的使用consolelog之类的console方法

    例如,旧版IE浏览器的低版本可能不支持`console`对象,导致在这些浏览器中使用`console`方法会抛出未定义的错误。这就是`console-polyfill`发挥作用的地方。当检测到目标环境不支持`console`对象时,`console-...

    调试代码导致IE出错的避免方法

    将这段代码放入基础库或者全局初始化脚本中,可以确保在不支持console的IE浏览器中,开发者仍然能够使用console.log等方法而不会引发错误。当然,随着现代浏览器的普及,这种情况越来越少,但这段代码仍然是对老版本...

    面试题技术必背1

    2. `toString.call([])` - 在非IE浏览器中,数组的toString方法返回`"[object Array]"`,可以据此判断。 3. `arr.constructor === Array` - 检查对象的constructor属性是否指向Array。 4. `arr instanceof Array` - ...

    关于IE下AJAX的问题探讨

    但是在IE浏览器中,上述代码在全局上下文中执行,`xhr`变量是未定义的,而`readyState`和`status`是全局对象的属性,从而导致代码无法正常工作。 为了解决这个问题,开发者通常会采取以下措施: 1. 使用一个变量来...

    JavaScript知识点

    - **IE浏览器**:使用`element.currentStyle.property` - **Firefox, Safari, Opera, Chrome**:使用`window.getComputedStyle(element).getPropertyValue(property)` ```html <!DOCTYPE ...

    Javascript笔记

    早期版本的IE浏览器并不支持此方法,但现代浏览器均提供了此功能。 - **`alert()`**: 弹出一个消息对话框,常用于向用户展示一些提示信息。 **1.2 JavaScript与DOM的关系** - **DOM (Document Object Model)**: 是...

    js中获取事件对象的方法小结

    在JavaScript中,事件对象是用来处理用户与网页...这段代码首先尝试获取传入的`e`(非IE浏览器),如果未定义,则尝试从`window.event`获取事件对象。这样,无论在哪个浏览器中,`handleClick`函数都能正确处理事件。

Global site tag (gtag.js) - Google Analytics