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/
相关推荐
在IE浏览器中,有时会遇到“JSON未定义”的错误,特别是在使用兼容模式或者较旧版本的IE时。这是因为JSON(JavaScript Object Notation)是ECMAScript 5引入的一个内置对象,而在IE8及以下版本中并未原生支持JSON。...
例如,旧版IE浏览器的低版本可能不支持`console`对象,导致在这些浏览器中使用`console`方法会抛出未定义的错误。这就是`console-polyfill`发挥作用的地方。当检测到目标环境不支持`console`对象时,`console-...
将这段代码放入基础库或者全局初始化脚本中,可以确保在不支持console的IE浏览器中,开发者仍然能够使用console.log等方法而不会引发错误。当然,随着现代浏览器的普及,这种情况越来越少,但这段代码仍然是对老版本...
2. `toString.call([])` - 在非IE浏览器中,数组的toString方法返回`"[object Array]"`,可以据此判断。 3. `arr.constructor === Array` - 检查对象的constructor属性是否指向Array。 4. `arr instanceof Array` - ...
但是在IE浏览器中,上述代码在全局上下文中执行,`xhr`变量是未定义的,而`readyState`和`status`是全局对象的属性,从而导致代码无法正常工作。 为了解决这个问题,开发者通常会采取以下措施: 1. 使用一个变量来...
- **IE浏览器**:使用`element.currentStyle.property` - **Firefox, Safari, Opera, Chrome**:使用`window.getComputedStyle(element).getPropertyValue(property)` ```html <!DOCTYPE ...
早期版本的IE浏览器并不支持此方法,但现代浏览器均提供了此功能。 - **`alert()`**: 弹出一个消息对话框,常用于向用户展示一些提示信息。 **1.2 JavaScript与DOM的关系** - **DOM (Document Object Model)**: 是...
在JavaScript中,事件对象是用来处理用户与网页...这段代码首先尝试获取传入的`e`(非IE浏览器),如果未定义,则尝试从`window.event`获取事件对象。这样,无论在哪个浏览器中,`handleClick`函数都能正确处理事件。