• 记坑:JavaScript 的 console.log() 和 trim() 方法IE兼容性


    1、IE9及以下浏览器不支持 console.log()

    IE9及以下浏览器不支持 console.log(),所以如果js代码中含有console.log,会导致执行js到这里的时候就直接抛出异常,
    后续的js代码也不会被执行了(报错:无console对象),这样就会引出页面的bug。
    当这些老版本的IE打开F12 调试窗口时,console.log才能解析了,也不会引出页面bug。

    解决办法:
    1、最好的办法就是避免使用console.log,即使是开发调试阶段,
    如果调试需要引入,而程序又得兼容IE9或更老版本的,注意程序在发布之前一定要记得删掉所有的console.log。

    2、define it!

      if (typeof console == "undefined") {
          this.console = {log: function() {}};
      }
    
    

    参考教程–StackOverflow论坛关于console.log兼容性的问答:
    https://stackoverflow.com/questions/14695422/ie10-console-log-not-working

    ###/2、原生javascrpit的trim() 在老版IE中不被支持
    错误示范:

    var ID = document.getElementByID('rep_id').value.trim();
    

    IE8 肯定是不支持原生javascrpit的trim()方法的,IE9 待确定(但估计也是不兼容的)。所以如果使用了就会报错。

    解决办法:
    1、不要使用原生js的trim()方法,如果引入了jquery,那么就使用jquery的 $.trim(…)方法,这个是兼容的。
    2、或者就参考jquery那样,自定义实现一个trim()方法原型,然后再程序中使用这个自定义的trim()方法:
    实现代码:

    String.prototype.trim = function() {
        return this.replace(/^s+|s+$/g,"");
    }
    

    或者

    if(typeof String.prototype.trim !== 'function') {
      String.prototype.trim = function() {
        return this.replace(/^s+|s+$/g, ''); 
      }
    }
    

    参考教程–StackOverflow论坛关于 JavaScript trim() 兼容性的问答:
    https://stackoverflow.com/questions/2308134/trim-in-javascript-not-working-in-ie?r=SearchResults

  • 相关阅读:
    Maven配置--《maven实战》读书笔记
    设置定时任务
    C#中的==
    C# lock的应用
    JDK和JRE
    末尾不以.OK文件结尾的正则表达式匹配
    ftp访问空目录的返回
    正则表达式的结尾匹配
    匿名对象和匿名类
    匿名内部类的调用
  • 原文地址:https://www.cnblogs.com/lvlang/p/10586331.html
Copyright © 2020-2023  润新知