动态加载js

来源:岁月联盟 编辑:exp 时间:2012-03-09

基于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(任务猫)
 
上一篇:js 中时间相减