浏览器兼容console对象的简要解决方案分享

浏览器报找不到console对象,那我们就手动构造一个接口完全一致的console对象 置于window中。这里采用了空方法和空对象。如此一来即使在很old的浏览器中,含有console.xxxxx的代码依然不会报错,完美运行。

下面附上修复兼容代码,要置于置于第一句console.xxxx调用之前,否则没有意义。

代码如下:

(function (){

//创建空console对象,避免JS报错

if(!window.console) 
    window.console = {}; 
var console = window.console;

var funcs = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 
             'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 
             'info', 'log', 'markTimeline', 'profile', 'profileEnd', 
             'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn']; 
for(var i=0,l=funcs.length;i<l;i++) { 
    var func = funcs[i]; 
    if(!console[func]) 
        console[func] = function(){}; 

if(!console.memory) 
    console.memory = {};

})();

(0)

相关推荐

  • JavaScript中的console.assert()函数介绍

    在JavaScript程序的开发和维护过程中,Assert(断言)是一个很好的用于保证程序正确性的特性.在具备调试工具的浏览器上,这一特性可以通过调用console.assert()来实现.比如在以下代码中,console.assert()语句保证cat对象的score变量值长度为3: 复制代码 代码如下: function cat(name, age, score){     this.name = name;     this.age = age;     this.score = scor

  • 用console.table()调试javascript

    用CONSOLE.LOG()展示数组 想象下你构造了如下数组 var languages = [ { name: "JavaScript", fileExtension: ".js" }, { name: "TypeScript", fileExtension: ".ts" }, { name: "CoffeeScript", fileExtension: ".coffee" } ];

  • js调试工具console.log()方法查看js代码的执行情况

    我之前在调试代码的时候,跟砸js代码执行情况,一般都是通过在代码块中使用alert的方式查看js代码的执行情况,今天也是看到有朋友使用console.log函数打印输出函数,变量,对象,下边就console.log的使用情况进行记录,具体的语法是: console.log("值为:",fn); console.log()能够输出变量,函数,数组,对象等等 <html> <head> <title>this关键字_函数调用</title>

  • js调试工具Console命令详解

    一.显示信息的命令 复制代码 代码如下: <!DOCTYPE html> <html> <head> <title>常用console命令</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <script type="te

  • ie9 提示'console' 未定义问题的解决方法

    维护的项目在ie9之下运行 没有问题,新增代码之后发现不能完整展示.打开ie的开发者工具之后又可以展示完整.找了很久没找到原因,后来发现打开开发者工具之后在控制台有一条输出语句.关掉开发者工具之后,在状态栏发现提示'console' 未定义,为什么之前的运行没有问题,之后的就不行呢?百思不得其解,后来在代码中增加下面代码: 复制代码 代码如下: window.console = window.console || (function(){ var c = {}; c.log = c.warn =

  • C# Console类的具体用法

    Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入.Console.WriteLine 表示向控制台写入字符串后换行.Console.Read 表示从控制台读取字符串,不换行.Console.ReadLine 表示从控制台读取字符串后进行换行.Console.ReadKey 获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中.Console.Beep 通过控制台扬声器播放提示音.Console.Clear 清除控制台缓冲区和相应的控制台窗口的显

  • JavaScript调试技巧之console.log()详解

    一.什么是console.log()?除了一些很老版本的浏览器,现今大多数浏览器都自带调试功能:即使没有调试功能,也可以通过安装插件来进行补充.比如,老版本的Firefox没有自带调试工具,在这种情况下可以通过安装Firebug插件来添加调试功能.在具备调试功能的浏览器上,window对象中会注册一个名为console的成员变量,指代调试工具中的控制台.通过调用该console对象的log()函数,可以在控制台中打印信息.比如,以下代码将在控制台中打印"Sample log": 复制代

  • JavaScript中的console.dir()函数介绍

    在调试JavaScript程序时,有时需要dump某些对象的详细信息.通过手工编写JavaScript代码可以完成这一工作:针对对象的属性进行循环,将循环到的每一个属性值打印出来:可见,这一过程是比较繁琐的.在具备调试工具的浏览器上,这一工作可以通过console.dir()语句来方便的完成. console.dir()的使用 console.dir()的使用非常简单,直接将需要dump的对象传入该语句即可.比如以下的例子: 复制代码 代码如下: function cat(name, age,

  • javascript 在firebug调试时用console.log的方法

    console.log(); 当你使用console.log()函数时,下面的firebug一定要打开,不然这函数在用firefox运行时无效且影响正常程序,如果用IE打开,将会出错. 第一个参数可以是一个包含格式化占位符输出的字符串,例如: console.log("The %s jumped over %d tall buildings", animal, count); 格式化字符串 类型 %s 字符串 %d, 整型 %i (暂不支持数字型) %f 浮点型 (暂不支持数字型) %

  • 使用console进行性能测试

    对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用 debugger 会显得过于笨重,最常用的方法是会将值输出到控制台上方便调试. 最常用的语句就是console.log(expression)了. 从早前一道阿里实习生招聘笔试题目入手: function f1() { console.time('time span'); } function f2() { console.timeEnd('time span'); } setTimeout(f1, 100); setT

  • javascript的console.log()用法小结

    console.log 原先是 Firefox 的"专利",严格说是安装了 Firebugs 之后的 Firefox 所独有的调试"绝招". 这一招,IE8 学会了,不过用起来比 Firebugs 麻烦,只有在开启调试窗口(F12)的时候,console.log 才能出结果,不然就报错. 今天看到 Opera 也有个叫 dragonfly 的东东,用这东西查看 DOM,已经可以和 Firebug 媲美,然而还是不能用 console.log.于是有人就提供了这样两句

  • JavaScript中的console.trace()函数介绍

    调试JavaScript程序时,有时需要打印函数调用的栈信息,这可以通过使用console.trace()来实现.以下面的代码为例: 复制代码 代码如下: function doTask(){     doSubTask(1000,10000); }   function doSubTask(countX,countY){     for(var i=0;i<countX;i++){         for(var j=0;j<countY;j++){}     }     console.t

随机推荐