避免console错误,console兼容

背景:写js代码时写了很多console.log进行日志打印,最后上生产时不想删除日志输出,

但是ie在不打开控制台时,日志输出会导致后续js不执行,所以需要适时屏蔽js日志输出

(IE等不支持console.log命令的浏览器,不仅无法执行console.log而且会因为该命令导致页面出错而无法正常执行。)

注:经验证在IE7/8下有效。

 

背景:写代码的时候,很多地方都加了这个方便调试,但是在发布产品的时候,部分浏览器下会报错
将这些代码注释后就没问题了。但是,注释的地方太多了,而且下次修改的话还得把注释改回来,难道没有其他的办法避免这些问题么?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(function() {
    var noop = function noop() {};
    var methods = [
        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
        'timeStamp', 'trace', 'warn'
    ];
    var length = methods.length;
    var console = window.console || {};
 
    while (length--) {
        // Only stub undefined methods.
        console[methods[length]] = console[methods[length]] || noop;
    }
}());

 

 

1、重写浏览器console日志输出,避免浏览器因不支持或未启用console.log导致的js不往下执行的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <script> 
    if(typeof window.console === "undefined") { 
        //浏览器不支持或未启用console,则禁用日志 
        window.console = { 
            log:function(){} 
        }; 
    
    </script> 
 
或者:
 
 if (!window.console) {
            console = {
                log: function (info) {
                    return false
                }
            }
        }

 

2、增加日志输出手动开关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(typeof window.console === "undefined") {   
    //浏览器不支持console,则禁用日志   
    window.console = {   
        log:function(){}   
    };  
}else{   
    //浏览器支持console 
    var url = window.top.location.href ;  
    if( url.indexOf("127.0.0.1") != -1 || url.indexOf("localhost") != -1 || url.indexOf("openlog") != -1 ){ 
        //如果是本机,或者开启了日志,则正常使用console 
    }else
        //非本机,也未开启,则禁用console 
        window.console = {   
                log:function(){}   
        };   
    

 避免console错误,console兼容 (http://blog.csdn.net/yfx000/article/details/44350489)

posted @   阿力瓦  阅读(1593)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!
点击右上角即可分享
微信分享提示