美文网首页
IE9的console不兼容问题

IE9的console不兼容问题

作者: BluesCurry | 来源:发表于2018-04-08 23:14 被阅读0次

    今天遇到一个很难受的问题,项目要求兼容 IE9,在登录时总是有一个按钮点击没反应,但是只要 f12 开发调试工具就好用,其他的浏览器比如 chrome 都没问题,想了一上午解决方法,问题的关键就是为啥只要打开调试工具就好使!

    后来在网上查了很多资料,才发现一个问题就是在 IE8 / 9 上在不打开调试工具的情况下window 上是没有 console 这个属性的!在打开调试工具的时候会给 window 再挂载上 console 属性,所以需要兼容 console 。。。知道了问题所在就好解决了,下面贴一下兼容性代码:

    (function() {
        var method;
        var noop = function () {};
        var methods = [
            'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
            'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
            'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
            'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn'
        ];
        var length = methods.length;
        var console = (window.console = window.console || {});
    
        while (length--) {
            method = methods[length];
    
            // Only stub undefined methods.
            if (!console[method]) {
                console[method] = noop;
            }
        }
    }());
    
    // 注:经验证在IE7/8/9下有效。
    

    虽然 IE11 以下的版本离我们越来越远,但是浏览器的兼容性问题确实是一场持久战!

    相关文章

      网友评论

          本文标题:IE9的console不兼容问题

          本文链接:https://www.haomeiwen.com/subject/nhlvhftx.html