firebug - 如何避免console.log()引起javascript的兼容问题
黄舟
黄舟 2017-04-10 12:43:00
[JavaScript讨论组]

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(7)
伊谢尔伦
var console=console||{log:function(){}}
PHP中文网

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

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

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

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

PHP中文网

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

伊谢尔伦

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

黄舟

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

伊谢尔伦
<!--[if IE]>
    <script type="text/javascript">
         var console = { log: function() {} };
    </script>
<![endif]-->
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号