使用javascript异步下载另一个javascript文件。
我知道可以通过在页面上插入新的脚本标记并将src
属性设置为文件网址来完成此操作。
我还需要在脚本下载完成后运行一些代码。我一直在使用yepnope,它们提供了在脚本下载和执行完成后执行的“回调”。
这是如何完成的?
谢谢!
答案 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()
签出链接,提供有关它的详细信息。