通过另一个js文件动态加载js文件?

时间:2009-10-24 15:58:47

标签: javascript jquery

无论如何都要在单个JS文件中加载其他JS文件。我想指出我的单个页面“ITS”js文件,并且js文件将加载jquery,其他js文件。

我知道我可以将所有这些弹出到html即

我在考虑分离问题,所以我想知道是否有任何事情已经存在而没有我重新发明轮子....

我只需要编辑home.js来改变为home.htm加载的其他js(jquery等)... home.htm只会指向home.js

由于

5 个答案:

答案 0 :(得分:15)

您可以查看dynamic script loading。以下是文章的摘录:

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'helper.js';
head.appendChild(script);

答案 1 :(得分:3)

对于外部域JS链接

var loadJs = function(jsPath) { 
    var s = document.createElement('script');
    s.setAttribute('type', 'text/javascript');
    s.setAttribute('src', jsPath);
    document.getElementsByTagName('head')[0].appendChild(s);
};
loadJs('http://other.com/other.js'); 

对于同一域JS链接(使用jQuery)

var getScript = function(jsPath, callback) {
    $.ajax({
        dataType:'script',
        async:false,
        cache:true,
        url:jsPath,
        success:function(response) {
            if (callback && typeof callback == 'function') callback();
        }
    });
};
getScript('js/other.js', function() { functionFromOther(); }); 

答案 2 :(得分:2)

这类似于Darin的解决方案,除了它没有任何变量。

document.getElementsByTagName('head')[0].appendChild(document.createElement("script")).src = "helper.js";

答案 3 :(得分:2)

我建议你看看labJS。它是专门为加载Javascript而创建的库。正如他们所说的那样......“LABjs的核心目标是成为一个通用的,按需的JavaScript加载器,能够随时从任何位置加载任何JavaScript资源到任何页面。”

有关详细信息,请参阅the labJS home page

答案 4 :(得分:1)

Google提供jQuery等主要javascript库的集中托管版本。它们可以使用谷歌加载器动态加载。

http://code.google.com/apis/ajaxlibs/documentation/