作者hyderai (飄)
看板Ajax
標題[ js ] .js include js檔
時間Thu Jul 17 01:09:36 2008
最近剛開始接觸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只能用複製的方式嗎?
--
『人生中有無數的選擇,卻沒有絕對正確的選擇,
你只要在選擇後讓它變成正確的就好。』
<<紅>> 柔澤紅香 juzawa benika
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.140.54
1F:推 SMUGEN:動態載入的.js還沒完全載入script就會往下run了 append之後 07/17 01:23
2F:→ SMUGEN:script繼續跑 同時間browser也正在get那個js檔 所以囉... 07/17 01:24
3F:→ SMUGEN:如果是用<script>直接插在<head>裡面就會完全載入後才往後 07/17 01:26
4F:→ SMUGEN:解譯html 當然也包括後面的<script>裡的js 我是用這方法啦 07/17 01:27
5F:→ SMUGEN:如果非動態載入不可的話 我想應該可以設個timer去測jQuery 07/17 01:29
6F:→ SMUGEN:是否定義 否則一樣再設timer 是則執行後續的js 不知可行否? 07/17 01:31
7F:推 Fenikso:用xmlhttprequest把檔案抓下來直接eval? 07/17 03:00
8F:→ Fenikso:(把Asynchronous設成false) 07/17 03:01
9F:→ Fenikso:不過這樣網頁會卡住.. 07/17 03:01
10F:→ TonyQ:Fenikso 網頁會卡住才符合原po需求...~_~ 07/17 09:58