我有这个代码...
这会渲染一些,但我不能使用该javascript文件功能...可以做什么呢?
最佳答案
您的脚本将异步加载,因此您不能立即使用它们。给他们一个onload处理程序,以便您知道何时准备好:
var oScript = document.createElement("script");
oScript.type = "text/javascript";
oScript.src = x[i].childNodes[0].nodeValue;
oScript.onload = function () {
// run bar, which is contained in foo.js
bar();
};
oHead.appendChild(oScript);
如果要确保已加载所有脚本,则可以创建一个计数器:
function counter(count, callback) {
return function() {
count -= 1;
if (count === 0) {
callback();
}
}
}
并将其传递给每个负载处理程序:
var x = xmlDoc.getElementsByTagName("script"),
countdown = counter(x.length, function(){ alert("All scripts loaded!"; });
for (i = 0; i < x.length; i++) {
var oScript = document.createElement("script");
oScript.type = "text/javascript";
oScript.src = x[i].childNodes[0].nodeValue;
oScript.onload = countdown;
oHead.appendChild(oScript);
}