避免console錯誤,console兼容

背景:寫js代碼時寫了不少console.log進行日誌打印,最後上生產時不想刪除日誌輸出,javascript

可是ie在不打開控制檯時,日誌輸出會致使後續js不執行,因此須要適時屏蔽js日誌輸出java

(IE等不支持console.log命令的瀏覽器,不只沒法執行console.log並且會由於該命令致使頁面出錯而沒法正常執行。)瀏覽器

注:經驗證在IE7/8下有效。oop

 

背景:寫代碼的時候,不少地方都加了這個方便調試,可是在發佈產品的時候,部分瀏覽器下會報錯
將這些代碼註釋後就沒問題了。可是,註釋的地方太多了,並且下次修改的話還得把註釋改回來,難道沒有其餘的辦法避免這些問題麼?url

(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;
    }
}());

 

 

一、重寫瀏覽器console日誌輸出,避免瀏覽器因不支持或未啓用console.log致使的js不往下執行的問題spa

    <script>  
    if(typeof window.console === "undefined") {  
        //瀏覽器不支持或未啓用console,則禁用日誌  
        window.console = {  
            log:function(){}  
        };  
    }  
    </script>  

或者:

 if (!window.console) {
            console = {
                log: function (info) {
                    return false
                }
            }
        }

 

二、增長日誌輸出手動開關.net

    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)debug

相關文章
相關標籤/搜索