0

我为客户网站的文件创建了这个脚本,core.js我想从该core.js文件中动态加载一些 javascript 库。但是,javascript 库要求您首先加载该库,然后使用脚本的其余部分,因为您必须在调用它之前定义您的库对象,doh。所以我有这个非常简单的脚本来动态加载文件,但我想知道是否有一种方法可以确保它在core.js文件之前优先加载它。这是当前脚本:

(function() {
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", "http://modernizr.com/downloads/modernizr-latest.js");
    if(typeof script != "undefined") {
        document.getElementsByTagName("head")[0].appendChild( script );
    }
})();

在调试器中,您会看到:

当然,它会在核心文件之前加载动态文件,但我想知道是否有办法指定要加载modernizr文件的文档行?否则,即使我已经加载了 Modernizr,我也无法使用它。

显然,我不能使用 jQuery,因为我也想加载它。

4

1 回答 1

1

load您可以使用事件侦听器响应动态加载的 JavaScript 资源(或任何资源,就此而言——图像、iframe、视频等)的加载。在这里最简单的方法是:

(function() {
    var script = document.createElement("script");
    ...
    script.onload = function() {
        // this will run later, when the script loads
        // in this function you can safely use Modernizr
    }
})();
于 2013-02-04T20:17:28.677 回答