基於prototype.js的動態載入js
用法:
1、引入prototype庫
<script type="text/javascript" src="/js/prototype.js"></script>
2、引入webJsBase.js
<script type="text/javascript" src="/js/webJsBase.js?load=ad,adTopDown,logoTip,iBanner"></script>
註:ad,adTopDown,logoTip,iBanner為動態引入的js檔案。如 ad.js
下面是代碼
/*
動態載入js v1.0 by:dum 2012-03-08 renwumao.com
用法:src="webJsBase.js?load=a,b"
註:載入本目錄下js
*/
var webJsBase = {
require: function(libraryName) {
document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
},
load: function(defaultLoad) {
if((typeof Prototype=='undefined')||(typeof Element == 'undefined')||(typeof Element.Methods=='undefined'))
throw ('prototype lib 載入失敗!');
if(typeof defaultLoad=='undefined')defaultLoad='';
var js = /webJsBase\.js(\?.*)?$/;
$$('head script[src]').findAll(function(s) {
return s.src.match(js);
}).each(function(s) {
var path = s.src.replace(js, '');
var includes = s.src.match(/\?.*load=([a-zA-Z0-9_,]*)/);
(includes ? includes[1] : defaultLoad).split(',').each(function(include) {
webJsBase.require(path + include + '.js');
});
});
}
};
webJsBase.load();
摘自 renwumao.com(任務貓)