2013-06-03 75 views
1

喜後我試圖加載頁面上10次的I幀,但我希望他們能夠加載一個一個後...負載的IFrame另一個

例如:1 sholud負載月1日,當它完成加載第二個應加載啓動......等等

我試圖此

$i = 1; 
while($i < 10){ 
    echo '<iframe src="/get_data.php?id='.$id.'&i='.$i.'"></iframe>'; 
    $i++; 
    } 

這裏有,他們都一起裝入一個問題...有沒有辦法我可以javascript or php

+1

退房這個帖子:http://codecorner.galanter.net/2011/11/02/how-to- load-iframes-in-order-prior-priority /這裏描述的方法允許以任何指定順序加載iframe。 –

回答

2

在此基礎上響應Dynamically create an iframe and attach onload event to it

喲可以這樣做:

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 
+0

Thx它工作良好;) – Harinder

3

PHP不會延遲輸出到瀏覽器。它將立即將所有10個iframe放置在頁面上,並且它們將同時加載。 PHP是服務器端,這意味着它不能對你的瀏覽器從外部收到的事件做出反應。 PHP只提供頁面,然後直接調用它,直到獲得另一個請求。

對於您要做的事情,Javascript是關鍵。在頁面加載時創建一個函數來添加一個iframe,創建一個監聽器來等待iframe被完全加載。當它收到響應時,創建您的下一個iframe。這是一個大綱。查看:How do I fire an event when a iframe has finished loading in jQuery?(第二回答)瞭解如何偵聽iframe加載。