作者wctang (wctang)
看板Ajax
標題Re: [ js ] .js include js檔
時間Thu Jul 17 10:11:32 2008
※ 引述《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($);
});
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.125.148.101
1F:推 fillano:這不能在IE跑吧? 07/17 10:42
※ 編輯: wctang 來自: 59.125.148.101 (07/17 11:10)
2F:→ wctang:sorry, 改一下,在 ie7 下應該沒問題了... 07/17 11:10
3F:推 hyderai:我測試完,這個方法應該還是沒辦法完全等jQuery載入 07/17 15:05
4F:→ hyderai:若是loadscript後,開始使用jQuery還是會有undefined情形 07/17 15:07
5F:→ hyderai:還是感謝回答,我還是直接Copy好了= =a 07/17 15:10
6F:→ wctang:在loadscript第二參數的func中? 我在 ff 中用都ok..@@ 07/17 21:40