国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

如何讓動態插入的javascript腳本代碼跑起來。

2024-09-06 12:43:58
字體:
來源:轉載
供稿:網友
首先,聲明方法很多種,直接間接的方法都有,只羅列一般情況下的兩種模式:
假設我們要裝入的代碼是a.js:
var foo=function(){
document.write("I am a.js content foo() function by never-online");
};

一。直接插入src,這種方法簡單而直接,但有局限性,
1)
<script>
var x=document.createElement("SCRIPT");
x.src="a.js"; x.defer=true;
document.getElementsByTagName("HEAD")[0].appendChild(x);
foo();
</script>


在如上的代碼放上head標簽內,執行時大多數情況下是會出錯,信息為:錯誤:缺少對象
這是由于動態創建對象script時,則于a.js還沒有完全載入而導致的。執行下面的代碼,你就可以發現原因了。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>never-online dynamic code test page</title>
</head>
<body>
<pre>

readyState的含義
 - uninitialized : 腳本對象剛被創建,腳本代碼未載入;
 - loading : 腳本代碼載入中;
 - loaded : 腳本代碼完成讀入,但尚未開始解釋執行;
 - interactive : 解釋執行過程中;
 - complete : 腳本已經執行完成。

</pre>
<div id="viewer"></div>
<script type="text/javascript">

window.onerror=function(msg,url,line){
  document.getElementById("viewer").innerHTML+='<p style="color:red">錯誤:'+msg+'line:'+line+'</p>';
  return true;
}

function bar(u) {
  var x=document.createElement("SCRIPT");
  x.src=u;
  x.defer=true;
  document.getElementsByTagName("HEAD")[0].appendChild(x);
}
bar("a.js");

(function getReadyState(){
  var e=document.getElementById("viewer")
  var x=true;
  var a = document.getElementsByTagName("SCRIPT");
  for (var i=0; i<a.length; i++) {
    if (a[i].readyState=='complete' && x!=false) x=true; else x=false
    e.innerHTML+=(a[i].src?a[i].src+':':'noname:')+a[i].readyState+"<br />";
  }
  e.innerHTML+="<hr/>";
  if (x) window.clearTimeout(window.timer); else
  window.timer=window.setTimeout('getReadyState()',1000);
}());

foo();

</script>
<script type="text/javascript">
//<![CDATA[
foo();
//]]>
</script>
</body>
</html>
初始值為:
a.js:loading
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 馆陶县| 盈江县| 台前县| 博白县| 斗六市| 元阳县| 山东| 昌都县| 平果县| 南陵县| 奉节县| 绥化市| 卓资县| 崇礼县| 高台县| 德庆县| 旌德县| 克什克腾旗| 衡阳市| 兴安盟| 连城县| 迁西县| 泰州市| 雷州市| 玛沁县| 阜城县| 高安市| 封丘县| 桐城市| 清流县| 巨鹿县| 台东市| 临高县| 麻城市| 松溪县| 沙坪坝区| 肥乡县| 肥乡县| 堆龙德庆县| 莲花县| 泗阳县|