Re: [ js ] .js include js檔
※ 引述《wctang (wctang)》之銘言:
: ※ 引述《hyderai (飄)》之銘言:
: : 最近剛開始接觸javascript
: : 我知道javascript裡面沒有include這種東西
: : 所以要自行撰寫函式來使用
: : 網路上目前找到的,大致如下:
: : function load(path) {
: : var d = document.createElement(script);
: : d.src = path;
: : document.getElementsByTagName(body)[0].appendChild(d);
: : }
: : 不過這種方式達不到我的目標
: : 最近在網路上看到一支js應用程式(ex. a.js)是另外使用jQuery framework來撰寫
: : 它是直接將jquery-1.2.6.js跟一些plugin的內容全部複製到該js檔內
: : 只是我覺得這樣看起來很亂,想用類似include的方式,將它們獨立出來,先使用
: : 上面的function將jquery-1.2.6.js include進來後,再開始程式的撰寫。
: : 不過要是用上面的function會失敗,出現jQuery未定義的訊息。
: : 是因為變數scope的問題,還是其他原因?有解決方式嗎?
: : js檔include其他js檔、css檔是不是不常見,
: : 因為沒有include,所以code reuse只能用複製的方式嗎?
: function loadscript(jspath,loaded) {
: var s=document.createElement('script');
: s.setAttribute('type','text/javascript');
: s.setAttribute('src',jspath);
: if(loaded){
: if(s.addEventListener){
: s.addEventListener('load',loaded,false);
: }else if(document.all){
: s.onreadystatechange=function(){if(this.readyState==='loaded'){loaded();}}
: }
: }
: document.getElementsByTagName('head')[0].appendChild(s);
: }
: loadscript('http://jquery/addrss.js',function(){
: alert($);
: });
就目前找到的方法1.使用addEventListener的方式在載入多個js檔方面
,好像不太方便,不過在loadscript()第二個引數函式中可以馬上
使用jQuery,這裡不需要另外設timer去考慮jQuery-1.2.6.js是否載入
完成的問題(?)
方法2.是使用ajax去抓想要load的多個js檔,相對的必須在同一網域
才能使用,最後再使用window.eval()去執行抓回來的js就OK了,不過
我測試了一下若是載入多個js檔,好像會有來不及load的情形,
所以就必須去考慮所有的js檔是否已經載入完成,目前看到的無非
是使用setTimeOut 或 setInterval 周期性的去check看是不是所有的
js檔都載入完畢,當然這裡判斷是否載入完成的條件,我想是蠻關鍵的地方...
網路上找到一些心得文,還蠻有幫助的
JavaScriptLoad and Execute JavaScript on Demand
author:石頭成
http://blog.roodo.com/rocksaying/archives/2716520.html
這篇是利用XmlHttpRequest即ajax來實作
JavaScriptLoad and Execute JavaScript on Demand, by createElement
author:石頭成
http://blog.roodo.com/rocksaying/archives/2741057.html
這篇是利用addEventListener來實作
--
ˍˍ
活出自己 ▕吞佛▏
才是此生的快意 ▕童子▏
 ̄ ̄
by godman362
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.140.54
推
07/18 10:32, , 1F
07/18 10:32, 1F
→
07/18 10:33, , 2F
07/18 10:33, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 7 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章
41
173