作者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