• 避免console错误,console兼容


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

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

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

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

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

    (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不往下执行的问题

        <script>  
        if(typeof window.console === "undefined") {  
            //浏览器不支持或未启用console,则禁用日志  
            window.console = {  
                log:function(){}  
            };  
        }  
        </script>  
    
    或者:
    
     if (!window.console) {
                console = {
                    log: function (info) {
                        return false
                    }
                }
            }
    

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

        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)

  • 相关阅读:
    网络系列之
    网络系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
    Linux命令系列之
  • 原文地址:https://www.cnblogs.com/aliwa/p/7646092.html
Copyright © 2020-2023  润新知