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/
相关推荐
标题中的“JSON.stringify()报错:JSON未定义”是一个常见的JavaScript错误,通常出现在尝试使用`JSON.stringify()`方法但全局环境中没有定义JSON对象时。在浏览器环境中,JSON是默认支持的,但在某些旧版本的IE...
在本文中,我们将深入探讨如何完美解决在Internet Explorer 9(IE9)浏览器中遇到的“对象未定义”错误。这种问题通常是由于浏览器的兼容性问题、JavaScript代码执行顺序、或者资源加载顺序不当所引起的。以下是一些...
解决vb连接sqlite3.dll报错,安装32版本驱动程序解决,在VB工程添加连接字串DRIVER=SQLite3 ODBC Driver;Database=处理
就像你在部分内容中提到的,可以创建一个模拟的`console`对象,这样即使在`console`未定义的情况下,代码也不会报错。这个模拟对象会将所有`console`方法的调用重定向到空函数: ```javascript window.console = ...
在IE浏览器中,有时会遇到“JSON未定义”的错误,特别是在使用兼容模式或者较旧版本的IE时。这是因为JSON(JavaScript Object Notation)是ECMAScript 5引入的一个内置对象,而在IE8及以下版本中并未原生支持JSON。...
window.console = window.console || {}; console.log || (console.log = opera.postError); ``` 这段代码会确保即使在未定义`console.log()`的环境中,也能将消息传递给Opera的错误处理机制`opera.postError`。 总...
例如,旧版IE浏览器的低版本可能不支持`console`对象,导致在这些浏览器中使用`console`方法会抛出未定义的错误。这就是`console-polyfill`发挥作用的地方。当检测到目标环境不支持`console`对象时,`console-...
### ESLint报错解决方案 #### 问题描述 在使用ESLint的过程中,可能会遇到一个常见的错误:“error: No ESLint configuration found”。此错误通常出现在项目的构建过程中或开发环境中,例如使用Visual Studio ...
该方法与 console.log() 相同,只是向标准错误流输出。 语法: 代码如下: console.error([data], […]) 接收参数: console.log接受若干个参数,如果只有一个参数,则输出这个参数的字符串形式。 如果有多个参数,...
3. **jQuery**:jQuery是一款简化JavaScript操作的库,其报错通常与选择器错误、DOM操作、插件冲突等有关。"jquery"文件可能包含jQuery的错误处理技巧和最佳实践,如使用$(document).ready()确保DOM加载完成后再执行...
本文将详细介绍`GETLASTERR`返回的各种错误代码及其具体含义,帮助开发者更好地诊断和解决问题。 #### 错误代码及含义 1. **0**:未知或未指定的错误。 2. **1**:非法功能。 3. **2**:系统无法找到指定的文件。 ...
JavaScript变量作用域是编程语言中一个非常核心的概念,它决定了变量在何处可被访问以及其生命周期。在这道面试题中,我们看到的是如何在不同...通过解决这类问题,我们可以更深入地掌握JavaScript的变量作用域规则。
百思不得其解,后来在代码中增加下面代码: 代码如下: window.console = window.console || (function(){ var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profi
本文将深入探讨在使用json2.js时遇到"json未定义"错误的解决方案,以及如何正确使用json.parse方法。 首先,"json未定义"的错误通常发生在尝试调用JSON对象的函数,如`json.parse()`或`json.stringify()`时,但JSON...
JavaScript是一种广泛应用于网页和网络应用的脚本语言,它的核心特性之一是变量和作用域的概念。在深入探讨这些概念之前,我们先理解一下原始值和引用值的区别。 1、原始值与引用值 JavaScript中有六种原始数据...
JavaScript中的箭头函数和普通函数在使用上有显著的差异,这些差异主要体现在以下几个方面: 1. **函数定义的简洁性**: - 箭头函数的语法更紧凑,可以视为匿名函数的一种简写形式。如果函数体只包含一个表达式,...
在JavaScript中,`Math.log()`方法是一个非常有用的数学函数,它用于计算给定数值的自然对数。自然对数是以自然常数e(约等于2.71828)为底的对数。这个方法在处理指数运算、概率、统计、科学计算以及各种数学问题时...
- EWebEditor主要基于IE浏览器开发,对于其他现代浏览器,可能存在兼容性问题。确保你的项目中包含了适当的polyfill库,以支持ES5及以下的语法特性。 - 对于非IE浏览器,可以考虑使用EWebEditor的HTML5版本或者...
// 报错,因为 `this` 未定义 console.log("inner func: self.foo=" + self.foo); // 输出 "inner func: self.foo=bar" })(); } }; myObject.func(); ``` - **解释**:在这个例子中,`this` 在不同的上下文...
Promise用于处理异步操作,提供了比传统的回调函数更优雅的解决方案。例如: ```javascript const promise = new Promise((resolve, reject) => { setTimeout(() => resolve('Done!'), 1000); }); promise....