首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个接一个地加载IFrame

一个接一个地加载IFrame
EN

Stack Overflow用户
提问于 2013-06-04 01:37:30
回答 3查看 1.8K关注 0票数 3

嗨,我正在尝试加载10个iframe在一个页面上,但我希望他们加载一个接一个…

例:第一个应该先加载,当它完成加载时第二个应该开始加载…诸若此类

我在试这个

代码语言:javascript
运行
复制
$i = 1;
while($i < 10){
    echo '<iframe src="/get_data.php?id='.$id.'&i='.$i.'"></iframe>';
    $i++;
    }

这里有一个问题,所有这些都加载在一起。有没有一种方法可以用javascript or php做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-04 01:57:10

基于此响应Dynamically create an iframe and attach onload event to it

你可以这样做:

代码语言:javascript
运行
复制
  var urls_to_load = ["http://url.com","http://url2.com","http://url3.com","http://url4.com"];
var i = 0;
function loadIframeAndcheckIfReady(){
    var current_url = urls_to_load[i];
    alert(i);
    frame = document.createElement('iframe');
    document.body.appendChild(frame);
    frame.setAttribute('src',current_url);
    var inter = window.setInterval(function() {
        if (frame.contentWindow.document.readyState === "complete") {
          window.clearInterval(inter);
          i++; //Now we have one url more...
          if(i < urls_to_load.length)loadIframeAndcheckIfReady(); //recursively call the function until i it's iqual to urls_to_load.length
        }
    }, 100);
}
loadIframeAndcheckIfReady(); //Start process
票数 2
EN

Stack Overflow用户

发布于 2013-06-04 01:43:37

PHP不会延迟输出到浏览器。它将把所有10个iframe一次放在页面上,它们将同时加载。PHP是服务器端的,这意味着它不能对您的浏览器从外部源接收到的事件做出反应。PHP只是提供页面服务,然后调用它退出,直到它收到另一个请求。

对于你正在尝试做的事情,Javascript将是关键。在页面加载时创建一个函数来添加iframe,创建一个侦听器来等待iframe完全加载。当它收到响应时,创建您的下一个iframe。这是一个提纲。查看:How do I fire an event when a iframe has finished loading in jQuery? (第二个答案),看看如何监听iframe加载。

票数 3
EN

Stack Overflow用户

发布于 2013-06-04 01:43:14

我认为你应该使用JavaScript和iframe的onLoad事件。http://www.w3schools.com/jsref/event_frame_onload.asp

只需编写代码,一旦加载了iframe,它就会开始加载下一个iframe。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16902575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档