如何检查异步加载的脚本是否已在javascript中完成加载

时间:2012-08-24 19:43:26

标签: javascript yepnope dynamic-script-loading

使用javascript异步下载另一个javascript文件。

我知道可以通过在页面上插入新的脚本标记并将src属性设置为文件网址来完成此操作。

我还需要在脚本下载完成后运行一些代码。我一直在使用yepnope,它们提供了在脚本下载和执行完成后执行的“回调”。

这是如何完成的?

谢谢!

3 个答案:

答案 0 :(得分:4)

大多数JS加载器通过向DOM注入<script>标记并将其onload事件绑定到您提供的函数来实现此目的。

yepnope使用相同的方法,您可以从source code中观察到它。函数injectJs使用doc.createElement创建DOM元素,使用src设置setAttribute和其他所需属性,绑定onreadystatechange&amp;提供回调的onload事件,最后将元素插入到文档中。

答案 1 :(得分:3)

yepnope.injectJs( scriptSource [, callback ] [, elemAttributes ] [, timeout ]); 直接关their website:你只需在成功的回调中运行你需要的代码就像那样。

// Example
yepnope.injectJs("jquery.js", function () {
  console.log("It is finished loading and I can do whatever I need to here");
}, { charset: "utf-8" }, 5000);

答案 2 :(得分:1)

这可以使用jquery完成,如果你想使用它,Jquery.getScript()

签出链接,提供有关它的详细信息。