如何在已加载的另一个iframe之后加载iframe

如何在已加载的另一个iframe之后加载iframe

问题描述:

我有一个URL数组,我想为每个URL创建一个iframe。 但我想要的只是创建和加载下一个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只有当。

这是改变URL的功能:

function changeLoc(frm,loc) { 
     frm.webNavigation.loadURI(loc, 
           frm.webNavigation.LOAD_FLAGS_NONE, 
           null, null, null 
          ); 
    } 

我怎么能这样做?

+0

对不起,*这样做 – Noelia

+0

习惯上选择接受的答案...;) – Alex

这取决于。

  1. 您是否可以控制IFRAME中显示的页面?
  2. 它们是 与主机页面在同一个域上吗?

有四种情况:

  • 如果他们是在同一个域,则可以通过 JavaScript的访问内容。

  • 如果他们是在同一域,您可以修改加载的页面 ,你可以告诉父框架时,从该页面onload事件 火灾的IFRAME加载。

  • 如果他们不在同一个域,您可以修改加载 页面,安全限制会阻止直接沟通。但是你 可以加载页面ping服务器上的中央存储库时 的onload事件触发

  • 如果他们不在同一个域,你不能修改的 加载网页...那么你有麻烦了... :)你将无法 检查何时页面完成加载....嗯..你可以创造一些丑陋的 定时器加载页面在设定的时间间隔......但不要告诉任何人我 告诉你这么...;)

如果iframe指向的网址为另一个域,您只需在iframe上放置一个onload事件 - 它会告诉您iframe何时开始加载,但您永远无法通过“相同来源策略”告诉何时加载完成。在这种情况下,页面内部与托管页面隔离。

如果I帧指向相同域,可以插入某种的document.ready代码放到页面,然后可以调用父页面的JavaScript函数宣布,它已经完成加载。