有个项目出现这样的问题:
页面b.aspx调用某个js函数函数报错,该函数定义位于a.js文件中,该js文件已经在b.aspx文件中引入,引入格式如下:
<script src="js/a.js" type="text/javascript" ></script>
b.aspx文件中还引入了其他5个js文件。
检查过程:
使用Fiddler检查文件请求,发现5个js文件都请求成功,就只有a.js文件没有请求,并且清空ie临时文件夹,发现每次请求成功下载5个js文件,就是a.js文件没有下载下来。
资料查询:
基本定位是JS编码导致,由于那5个文件的编码和a.js文件的编码不一样。
资料提供的解决方案:
(1)在引入的时候指定编码 如 <script src="/js/a.js" type="text/javascript" encoding="utf-8"></script>
这样要求对所有的引入都进行这样的指定 ,修改面积太大
(2)用文本编辑器将js文件打开 保存为UTF-8编码方式
这样无法保证所有文件都是一样的编码,如果以前的文件时GB编码 则这样会越高越乱
最终解决方案:
步骤一:查看成功引入文件的编码方式,查看方法:
(1)VS2005中打开成功引入的文件
(2)查看该文件的编码方式:文件--》高级保存选项
查看编码栏:如图所示 表示成功引入的js文件编码为GB2312
(3)将出错的js文件编码方式修改成和其他文件一样 操作步骤 同上 打开出错文件 文件-》高级保存选项 将js文件的编码修改成GB2312 保存
问题解决。