如何按顺序动态附加JS / CSS文件

时间:2013-07-10 22:14:40

标签: javascript

所以,我必须在主页

中加载它们
jQuery.js
jQueryMobile.css
jQueryMobile.js
mainScript.js

但是如果用户从其他任何地方进入,我需要动态加载它们。所以我有

scriptCheck.js

if scripts not present
    //create array of elements containing above files
    scriptsArray.forEach do |script|
        head.append(script)
    end forEach
end if

我的问题是,有没有办法让加载同步操作,等待加载每个脚本并在加载下一个脚本之前进行解释?

2 个答案:

答案 0 :(得分:1)

您可以将每个脚本元素的onload处理程序设置为加载下一个脚本的函数:

var counter = 0
scriptpaths = [...]
function loadnextscript(){
    var el = document.createElement("script");

    el.onload = loadnextscript;
    el.src = scriptpaths[counter];

    document.head.appendChild(el);

    counter++;
}

然后您可以使用以下方法调用此方法:

if (scriptsnotpresent) {
    loadnextscript();
}

答案 1 :(得分:-1)

检查出来:https://stackoverflow.com/a/2880147/1391624

它使用createXMLHTTPObject()打开并发送同步请求。