IE6你什么时候死去?
在帮客户修改一个系统时,许多在其它较高ie版本或者其它主流浏览器能运行的功能在ie下都不行了,而且防不胜防
今天又有一个js文件因为编码没有统一,出现里面所有代码不能执行的问题,搜索了一下,找到如下解决之道。我把些.js文件用uft-8重新保存后,运行正常(整个站是utf-8编码,而这个不知道何故是gb2312)。下面的其它解决方法,待验证。
解决“引入JS文件IE6报错”的问题
问题描述:页面引入一个js文件,其中定义了函数或对象,然后在页面中调用函数或对象时,在IE6会报“语法错误”或“缺少对象”。在IE6+或者IE7却运行正常。
问题分析:这个对象在引入的JS文件中是存在的,因为在IE6+以上的浏览器都可以正常运行。这个问题在于文件编码上,如果JS文件编码与当前页面的编码不一致,就可能导致在IE6中页面不能正常获取和解析JS文件中的内容,在IE6中,默认引入的文件和页面的编码是一致的。在IE6+以上的浏览器中,一般浏览器会自动识别每个外部文件的编码并进行解析;
问题解决:
一:引入js文件时加charset属性,保持与页面编码一致;
二:修改引入文件编码格式;
三:新建一个文件格式同页面编码格式一致,复制粘贴内容;
(个人建议第三种方法,但建议在导入js时加上charset属性!)
还有一个ie6下的问题,即一个window.addEvent函数不能执行,用setTimeout包起来就行了。其它版本浏览器不需要 。需要的是,此站中许多地方用到这个函数,却连ie6下也没问题,独独某个文件中的这个函数不能执行,无解。
ie6独个出的兼容性问题太多了,快快退出历史,解放程序员吧
浙公网安备 33010602011771号