动态加载js

基于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();

 


posted @ 2012-03-08 16:26  renwumao  阅读(520)  评论(0编辑  收藏  举报