動態建立script引入js檔案導致亂碼現象

antzone發表於2017-03-23

在動態建立script標籤引入外部js檔案的時候的可能會導致亂碼問題,下面就介紹一下如何避免此現象。

一.頁面程式碼:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312"/> 
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style> 
p{ 
  color:red; 
} 
</style>
<script type="text/javascript"> 
function loadJS(src,charset){ 
  var script=document.createElement('script'); 
  script.src=src; 
  script.charset=charset; 
  var head=document.getElementsByTagName('head')[0]; 
  head.appendChild(script); 
} 
window.onload=function(){
  var obt=document.getElementById("bt");
  obt.onclick=function(){
    loadJS("utf8.js","utf-8")
  }
}
</script> 
</head> 
<body> 
<input type="button" id="bt" value="檢視效果"/>
</body> 
</html>

二.utf8.js檔案中的程式碼:

[JavaScript] 純文字檢視 複製程式碼
var p=document.createElement('p'); 
p.innerHTML='IE快取導致亂碼'; 
document.body.appendChild(p);

上面的程式碼在IE瀏覽器中有可能會導致亂碼現象,解決方案如下:

[JavaScript] 純文字檢視 複製程式碼
script.charset=charset; 
script.src=src;

只要將script.src=src和script.charset=charset兩者的順序進行一下互換就可以了。

相關文章