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