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

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

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


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

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

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


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


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


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


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

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

var console=console||{log:function(){}}
【热门文章】
【热门文章】