如何在特定的JS加载后运行javascript函数?
问题描述:
我已经做了一个js函数,在我的html中包含另一个javascript。我需要确保使用该函数加载的脚本已完成处理,然后仅在原始脚本中进一步移动。如何在特定的JS加载后运行javascript函数?
function loadBackupScript(){
var script = document.createElement('script');
script.src = 'http://www.geoplugin.net/javascript.gp';
script.type = 'text/javascript';
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
}
我需要知道该脚本已经加载以使用其功能。我怎么做?
答
function loadBackupScript(callback) {
var script;
if (typeof callback !== 'function') {
throw new Error('Not a valid callback');
}
script = document.createElement('script');
script.onload = callback;
script.src = 'http://www.geoplugin.net/javascript.gp';
document.head.appendChild(script);
}
loadBackupScript(function() { alert('loaded'); });
答
添加到您的函数:
// all cool browsers
script.onload = doSomething;
// IE 6 & 7
script.onreadystatechange = function() {
if (this.readyState == 'complete') {
doSomething();
}
如果你不相信这些事件,你也可以使用的setTimeout()来检查该功能的存在。 在这方面的一个很好的文章可以在这里找到: