如何等待脚本节点完成加载
How to wait for a script node to finish loading?
在javascript中,我将<script tag>
插入iframe:
var iframe = document.getElementById('iframe');
var doc= iframe.contentWindow.document.getElementsByTagName('head')[0];
var jquery = document.createElement("script");
jquery.type = "text/javascript";
jquery.src = "jquery-1.9.1.min.js";
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "blah.js";
doc.appendChild(jquery);
doc.appendChild(script);
然而,blah.js
中有jquery代码,有时这个脚本会失败,因为jquery脚本还没有完成加载。有办法等到它完成加载吗?
谢谢。
关键是使用script.onload = functionName;
修复IE8。完整的代码请参见https://stackoverflow.com/a/15437678/2227298。
一旦jQuery加载,你可以使用jQuery.getScript
与成功参数
在第一个脚本的末尾添加一个回调。
jquery.js:
if (window.jqueryLoaded)
window.jqueryLoaded();
在你的代码:
// create the function that will be called once jquery finishes loading
function jqueryLoaded()
{
doc.appendChild(blah);
}
// load jquery
doc.appendChild(jquery);
如果不能修改jquery.js文件,可以使用计时器:
var checkjQuery = window.setInterval(function() {
if (!window.jQuery)
return;
window.clearInterval(checkjQuery);
window.jqueryLoaded();
}, 10);
相关文章:
- 节点 - 将 JSON 文件加载到代码中
- 打开节点上的JSTree的渐进加载
- 节点JS加载JS&ejb文件中的css文件
- 在节点和浏览器中加载单个javascript模块
- Jquery onclick事件加载XML的特定节点
- JavaScript仅加载10个xml节点
- 节点.js - 异步模块加载
- 从节点服务器加载JavaScript
- Jqgrid Treegrid在更新本地源数据时重新加载节点
- 将json数据动态加载到D3节点中
- 动态地将单击的节点作为加载节点的父节点 - jsTree
- 我可以在 MVC 3.0 中获得一个工作 Asp.NET jsTree 4 示例,并异步加载节点
- 具有静态节点和动态加载节点的 JsTree
- 节点.js.为什么页面无法加载css和javascript文件
- 加载调用仅适用于第一个节点,不适用于叶
- 节点.js - HTTPS PFX 错误:无法加载 BIO
- 节点 JS 快速车把重新加载页面
- 检查是否使用茉莉花节点加载的节点模块
- 在节点加载后停止vis.js物理,但允许可拖动节点
- 文件“disappearing"节点加载例程完成后,从mongodb收集