解决“引入JS文件IE6报错”的问题
问题描述:
页面引入一个js文件,其中定义了函数或对象,然后在页面中调用函数或对象时,在IE6会报“语法错误”或“缺少对象”。在IE6+或者IE7却运行正常。
问题分析:
这个对象在引入的JS文件中是存在的,因为在IE6+以上的浏览器都可以正常运行。这个问题在于文件编码上,如果JS文件编码与当前页面的编码不一致,就可能导致在IE6中页面不能正常获取和解析JS文件中的内容,在IE6中,默认引入的文件和页面的编码是一致的。在IE6+以上的浏览器中,一般浏览器会自动识别每个外部文件的编码并进行解析;
问题解决:
一:引入js文件时加charset属性,保持与页面编码一致;
二:修改引入文件编码格式;
三:新建一个文件格式同页面编码格式一致,复制粘贴内容;
(个人建议第三种方法,但建议在导入js时加上charset属性!)
发现问题:
由于重装系统,发布项目后发现js报错:报语法错误还有缺少对象。郁闷
以前系统是ie7,重装系统后为ie6.刚开始以为是浏览器版本问题,以为页面导入的js里面有ie6不兼容的代码!所以最后把js一行一行注释掉,当最后js文件全删掉了,还出现上面错误。------超级郁闷
以前代码也没事,怎么重装个系统就坏了~最后找出以前项目发布了,在ie6下没有错误,代码完全一样。------------不知还能否用郁闷一词不?
想了半天,想到编码问题。以前项目编码为gb2312,现在项目改为UTF-8
加上后没起作用,再到js该编码格式改为UTF-8运行也不行。最后新建一个js文件编码格式改为utf-8,发布OK。
晕死,一般编码修改(1).增加charset。(2).修改文件编码格式。还到tomcat下查看也已经修改过了。不知道怎么回事!
可能要全删了在发布吧!!!不过问题总算解决~要是不重装系统,还发现不了这个小bug
----记下以后防止这种错误发生!