记坑: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

posted @ 2019-03-12 23:06  Victor_Lv  阅读(651)  评论(0编辑  收藏  举报