先看下重现代码1、gb2312.html该文件编码为gb2312复制代码代码如下:DOCTYPE html html head title/title meta charset=' GB 2312 '/style p { color : red;}/样式/头体按钮onclick=' Loadjs '(utf 8 . js ',' utf-8 ')测试/按钮脚本函数loadJS(src,charset){ var script=document。create element(' script ');script . src=src script . charset=charset var head=document。getelementsbytagname(' head ')[0];head.appendChild(脚本);} /script /body /html 2,utf8.js该文件编码是utf-8复制代码代码如下:风险值p=文件。创建元素(' p ');p.innerHTML='IE缓存导致乱码;文件。尸体。append child(p);loadJS函数动态创建一个剧本,设置字符集科学研究委员会后添加到头中。这里每次点击按钮会将utf8.js引入到该页面中,utf.js内代码会创建一个p元素设置一段文本,然后添加到身体上。第一次点击按钮,文字显示正常。第二次后,文字编码不正确了。如图
如果不是动态创建的脚本标签,直接写在超文本标记语言页面上,则没有此问题。复制代码代码如下:脚本类型=' text/JAVAScript ' src=' http : utf 8。js ' charset=' utf-8 '/脚本如果采用文档。写入方式载入射流研究…资源也不会出现该病菌复制代码代码如下:脚本函数loadByWrite(url,charset){ var str=' script type=' text/JavaScript ' ' ' src=' http : ' URL ' ' charset=' charset ' ' ' '/script ';文件。write(字符串);}/脚本loadByWrite('utf8.js ',' utf-8 ')脚本/脚本解决方式是换下科学研究委员会和字符集属性的赋值顺序。复制代码代码如下: script . charset=charsetscript . src=src即先给字符集赋值。