我有一组 URL,我想为我拥有的每个 URL 创建一个 iframe。 但我想要的是仅在前一个 iframe 完全加载时创建并加载下一个 iframe。
这是创建 iframe 的函数:
function loadSubsequencePages(links){
var id = document.getElementsByTagName("iframe").length;
for(var i=0; i<links.length;i++){
var frame = document.createElement("iframe");
frame.setAttribute("id","frame"+id);
frame.setAttribute("src","about:blank");
document.getElementById('frames').appendChild(frame);
changeLoc(document.getElementById("frame"+id),links[i].href);
}
}
我只想在加载我创建的实际 iframe 时移动到下一个 i。
这是更改 URL 的函数:
function changeLoc(frm,loc) {
frm.webNavigation.loadURI(loc,
frm.webNavigation.LOAD_FLAGS_NONE,
null, null, null
);
}
我该怎么做?
最佳答案
这取决于。
- 您是否可以控制
IFRAME
中显示的页面? - 他们是 在与托管页面相同的域上?
有四种情况:
如果他们在同一域,您可以通过 JavaScript。
如果他们在同一个域,并且您可以修改加载的 页面,你可以在
onload
事件发生时告诉父框架 从IFRAME
中加载的页面触发。如果它们不在同一个域中,您可以修改加载的 页面,安全限制将阻止直接通信。但是你 可以从加载的页面 ping 服务器上的中央存储库
onload
事件触发如果它们不在同一个域中,并且您不能修改 加载页面...好吧,你有麻烦了... :) 你将无法 检查页面何时完成加载....好吧..你可以创建一些丑陋的 计时器以设定的时间间隔加载页面......但不要告诉任何人我 告诉过你...;)
关于javascript - 如何在另一个已加载的 iframe 之后加载 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015592/