对每个前端er来说,提起来ie就是头大,各种兼容性的问题,让人头大。前两天就在ie9下遇到一个比较少见的问题。
具体情况是这样的:
ie9下,js不执行,各种绑定事件不起作用。其他浏览器都6得飞起。当然了遇到这种情况肯定要打开控制台看一下什么情况,打开之后发现代码ok,没有什么报错,并且js运行正常。
因为正在使用react+es6,所以当时不确定是浏览器兼容性还是部分es6语法不被支持,后来排除了其他可能,只剩浏览器兼容的问题了。后来搜了一下,有人提到ie9不支持console对象,需要删除调试用的相关语句。后来试了一下,果然是这个问题。无语至极
所以后面如果遇到这个问题有两种解决方案。
1、直接删除console对象的语句,一般调试用而已,正式上线应该不需要。
2、判断浏览器是否支持window.log,如果不支持,自定义空方法,排除undefind报错即可,毕竟console.log不起实际作用。
//是否支持console对象 if(!window.console){ window.console = { log: '', dir:'', warn:'' } }