IE6下出现JavaScript未结束的字符串常量错误的解决方法
作者:
JavaScript文件只在IE6下出错(“未结束的字符串常量”)的解决办法。
里面提到“DOM是UTF-8的篇码,如果JS库不是分离的独立JS文件,而是包含在DOM里的,这个问题是不会出现的。然而分离的JS文件并不是UTF-8编码,被加库到UTF-8编码的DOM里,中文就出现了乱码,并影响到引号符,使浏览器无法判断字符串结束。解决变法很简单,JS文件另存为UTF-8编码格式即可。 ”
所以我修改了JavaScript的引用, <script type="text/javascript" src="**.js" charset="gb2312"></script>
修改后果然,可以正常且正确的运行了。 看来真的是中文编码格式的问题了。
问题:虽然用gb2312可以解决问题。 但UTF-8却不可以。需要进一步研究。
项目在IE6下表现得不理想,害我一头汗。若不是某人用IE7,恐怕我就算天大的啤气也发不起来。是忽悠过去了,但问题还得解决。要知道IE6还是主要浏览器。回来后我在远程服务器上用IE6仔细检查出错的JS库,其提示是“未结束的字符串常量”。心里纳闷我不至于漏加个引号吧,就算我忘了给字符串加引号结束,在IE7和FireFox下同样也会出错。为什么又好得不得了呢。找到出错的那一行后真相大白……
我需要一个事件来处理用户点击按钮,把项目预警信息设为“已读”,以使预警信息框不再弹出。Jquery会调用处理脚本并返回处理信息。若处理信息为true,表示设置成功。JS代码会在DOM里指定信息元素修改HTML,也就是将“未读”设为“已读”。
function setread(id){
$.post(”result/setRead.asp”,{id:id},function(msg){
if(msg==true){
$(”#msgList_”+id).html(”已读“);//出错行。
}
});
}
问题就出在这个“已读”上。中文的,郁闷了很久。DOM是UTF-8的篇码,如果JS库不是分离的独立JS文件,而是包含在DOM里的,这个问题是不会出现的。然而分离的JS文件并不是UTF-8编码,被加库到UTF-8编码的DOM里,中文就出现了乱码,并影响到引号符,使浏览器无法判断字符串结束。解决变法很简单,JS文件另存为UTF-8编码格式即可。
这点小问题差点让我在众目睽睽下出大糗。
所以我修改了JavaScript的引用, <script type="text/javascript" src="**.js" charset="gb2312"></script>
修改后果然,可以正常且正确的运行了。 看来真的是中文编码格式的问题了。
问题:虽然用gb2312可以解决问题。 但UTF-8却不可以。需要进一步研究。
项目在IE6下表现得不理想,害我一头汗。若不是某人用IE7,恐怕我就算天大的啤气也发不起来。是忽悠过去了,但问题还得解决。要知道IE6还是主要浏览器。回来后我在远程服务器上用IE6仔细检查出错的JS库,其提示是“未结束的字符串常量”。心里纳闷我不至于漏加个引号吧,就算我忘了给字符串加引号结束,在IE7和FireFox下同样也会出错。为什么又好得不得了呢。找到出错的那一行后真相大白……
我需要一个事件来处理用户点击按钮,把项目预警信息设为“已读”,以使预警信息框不再弹出。Jquery会调用处理脚本并返回处理信息。若处理信息为true,表示设置成功。JS代码会在DOM里指定信息元素修改HTML,也就是将“未读”设为“已读”。
复制代码 代码如下:
function setread(id){
$.post(”result/setRead.asp”,{id:id},function(msg){
if(msg==true){
$(”#msgList_”+id).html(”已读“);//出错行。
}
});
}
问题就出在这个“已读”上。中文的,郁闷了很久。DOM是UTF-8的篇码,如果JS库不是分离的独立JS文件,而是包含在DOM里的,这个问题是不会出现的。然而分离的JS文件并不是UTF-8编码,被加库到UTF-8编码的DOM里,中文就出现了乱码,并影响到引号符,使浏览器无法判断字符串结束。解决变法很简单,JS文件另存为UTF-8编码格式即可。
这点小问题差点让我在众目睽睽下出大糗。