【发布时间】:2012-08-24 19:43:25
【问题描述】:
使用 javascript 异步下载另一个 javascript 文件。
我知道这可以通过在页面上插入一个新的脚本标签来完成,并将 src 属性设置为文件 url。
脚本下载完成后,我还需要运行一些代码。我一直在为此使用yepnope,它们提供了在脚本完成下载和执行时执行的“回调”。
这是如何实现的?
谢谢!
【问题讨论】:
标签: javascript yepnope dynamic-script-loading
使用 javascript 异步下载另一个 javascript 文件。
我知道这可以通过在页面上插入一个新的脚本标签来完成,并将 src 属性设置为文件 url。
脚本下载完成后,我还需要运行一些代码。我一直在为此使用yepnope,它们提供了在脚本完成下载和执行时执行的“回调”。
这是如何实现的?
谢谢!
【问题讨论】:
标签: javascript yepnope dynamic-script-loading
大多数 JS 加载器通过将 <script> 标记注入 DOM 并将其 onload 事件绑定到您提供的函数来执行此操作。
yepnope 使用相同的方法,您可以从它的source code 中简单地观察到这一点。函数injectJs 使用doc.createElement 创建一个DOM 元素,使用setAttribute 设置src 和其他需要的属性,将onreadystatechange 和onload 事件绑定到提供的回调,最后将元素插入到文档中.
【讨论】:
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);
【讨论】:
yepnope 标签来标记这个问题呢?
这可以使用 jquery 来完成,如果你想使用它,Jquery.getScript()
查看它提供有关它的详细信息的链接。
【讨论】: