如何避免console.log()引起javascript的兼容问题

73次阅读

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

DBase

var console=console||{log:function(){}}

cute

HTML5 Boilerplate默认一个处理所有的console call的fallback。
以下摘自:https://github.com/h5bp/html5-boilerp…

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

husher

代码上线之前没走打包流程么?

开发代码->线下压缩打包->线上

直接在压缩打包的时候自动去掉console和注释就可以了

小豪_步天

用ant做一个简单的发布流程吧
https://github.com/hellolibo/mbb-buil…

hellolibo

参考:
http://patik.com/blog/complete-cross-…
http://benalman.com/projects/javascri…

airyland

加一段
try{
console.log();
}catch(e){
….
}

码砖专业户

<!--[if IE]>
    <script type="text/javascript">
         var console = { log: function() {} };
    </script>
<![endif]-->

大狗丸

正文完