一个编码引发js错误的问题
2013-03-12 01:03
513 查看
在做一个网站后台的时候,网页引用的一个删除商品的函数在IE6,IE7中死活不能执行。狗血的IE6 IE7不像chrome那样有控制台,因此调试起来非常麻烦,只给了一个大概行数,和对象undefined。
既然在chrome,ie9,ff中能执行,在IE6,IE7中失败,首先想到的就是兼容问题。但函数里面都是用jquery实现的,除了confirm(),应该不存在兼容问题。于是又想到一个事情:网站是基于frameset,难道在frame页中引用js,不能在子frame中调用?于是将原来的onclick="deleteProduct()"改成onclick="window.top.frames[2].deleteProduct()"又不行。
于是干脆逐句逐句来调试。将admin.js里面的所有代码删除,强刷页面(在WINDOWS 7中使用thinapp ie6强刷也不会强制获取新版本js,郁闷,只能每次都删除缓存文件)。一路追踪到一句if(!confirm("确定删除勾选项?")){return false;} 上。但语法怎样看也不像有错误,但去了这句,就正常了,一加上这句,网页就报“未结束的字符串常量”,问题肯定在这句身上。google了一下,发现原来是编码问题。
问题的原因就是:我的frameset文件都是html文件。在dw新建的时候不知道为什么,文件是ansi编码的。meta中的charset却又是gb2312,而js文件却是utf-8,这样在加载js时候,utf8的js被加载到gb2312的dom中,就出现了字符串常量为结束的情况。
于是将所有的frame文件重新保存成utf-8,并修改meta中的charset为utf-8,问题解决。
总结:
1.通常google过某个问题,但好像没什么人遇到过,那几乎可以说明这个问题是个伪问题。
2.IE的提示还是有点用的,如果我能早点google“未结束的字符串常量”,估计早就解决了。
既然在chrome,ie9,ff中能执行,在IE6,IE7中失败,首先想到的就是兼容问题。但函数里面都是用jquery实现的,除了confirm(),应该不存在兼容问题。于是又想到一个事情:网站是基于frameset,难道在frame页中引用js,不能在子frame中调用?于是将原来的onclick="deleteProduct()"改成onclick="window.top.frames[2].deleteProduct()"又不行。
于是干脆逐句逐句来调试。将admin.js里面的所有代码删除,强刷页面(在WINDOWS 7中使用thinapp ie6强刷也不会强制获取新版本js,郁闷,只能每次都删除缓存文件)。一路追踪到一句if(!confirm("确定删除勾选项?")){return false;} 上。但语法怎样看也不像有错误,但去了这句,就正常了,一加上这句,网页就报“未结束的字符串常量”,问题肯定在这句身上。google了一下,发现原来是编码问题。
问题的原因就是:我的frameset文件都是html文件。在dw新建的时候不知道为什么,文件是ansi编码的。meta中的charset却又是gb2312,而js文件却是utf-8,这样在加载js时候,utf8的js被加载到gb2312的dom中,就出现了字符串常量为结束的情况。
于是将所有的frame文件重新保存成utf-8,并修改meta中的charset为utf-8,问题解决。
总结:
1.通常google过某个问题,但好像没什么人遇到过,那几乎可以说明这个问题是个伪问题。
2.IE的提示还是有点用的,如果我能早点google“未结束的字符串常量”,估计早就解决了。
相关文章推荐
- 一个逗号引发的问题 js错误
- js的一个有意思的小题,闭包解决getElementByTagName的for循环绑定事件错误问题
- 分享一个 jsPDF的简单使用以及中文编码问题的解决
- 由于编码问题引发的ODBC插入数据库中文错误
- js判断checkbox选中(记录一下,一个小问题引发的)
- InputStreamReader引发的一个编码问题
- 一个js Tree 的问题,当id为整数时,可以获得值,当id为“ff100”的数字字母混合是就出现错误,请高手指点一下
- js json 与字符串 转换过程由于书写不统一规范引发的一个问题
- js函数在window.location.href跳转页面传参由于空格引发的一个小问题
- 因 php 默认的 url encode 编码标准引发的一个问题
- js一个逗号引发的错误
- 一个JS引发的跨域问题
- 一个JS引发的跨域问题
- 解决一个我之前没有解决的问题[后台编码ajax请求的内容,前台js解码]
- ie6因为编码问题无法正常解析css文件和js文件
- 一个 android和js 数据交互的问题
- 一个对于js this关键字的问题
- “fatal error C1859: “Release\XXXX.pch”意外的预编译头错误,只需重新运行编译器就可能修复此问题”的一个解决办法
- 微信js sdk invalid signature签名错误 问题解决。
- JS中URL传中文参数引发的乱码问题