背景:寫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