如何逐个加载iframe

时间:2014-03-08 00:17:15

标签: javascript ajax


我需要在页面A.php中加载6个iframe。这6个iframe的内容是6个子页面:a1.php~a6.php。在加载每个子页面之前,我需要先做一个ajax(更改数据库),然后加载子页面。这是问题所在。应逐个加载每个子页面。也就是说,a2.php只能在加载a1.php后加载。如何实现这个功能?因为每个子页面的大小都很大,所以加载需要一点点时间。每次,当a1.php没有被完全加载时,a2.php中的ajax正在工作(所以数据表已被更改)。
非常感谢你,如果你可以帮助我:)
JS:< / p>

function showpic(id,x,y)
{ 
    if (id==0)
    {
        var oBao = CreateHTTPObject();
        var url = "ajax.php";
        var sendstring="x="+x; 
        oBao.open("POST",url,false);
        oBao.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        oBao.send(sendstring); 
        oBao.onreadystatechange = function () { OnReadyStateChng();};
        document.getElementById("iframe"+id).src="a.php?y=" +y;
    }
    else
    {
        var iid=id-1;
        document.getElementById("iframe"+iid).onload=function()
        {
            var oBao = CreateHTTPObject();
            var url = "ajax.php";
            var sendstring="x="+; 
            oBao.open("POST",url,false);
            oBao.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            oBao.send(sendstring); 
            oBao.onreadystatechange = function () { OnReadyStateChng();};
            document.getElementById("iframe"+id).src="a.php?y=" +y;
        }
    }
}

PHP:

for($i=0;$i<2;$i++)
{
    for($j=0;$j<3;$j++)
    {
        $nu=$i*3+$j;
        $div="iframe".$nu;
        echo "<iframe id='$div'  height='400px' frameborder=0 ></iframe>";
        echo "<script language='JavaScript'>showpic($nu,$x,$y) ;</script></div>";
    }
}

1 个答案:

答案 0 :(得分:0)

我很抱歉,但我没有阅读您的代码,但您的解释很清楚。 ajax请求总是有一个回调函数,在那里你将得到你的请求的响应文本。在这个匿名回调函数中,您可以调用另一个开始加载下一个iframe的函数。只需让他们设置框架的src即可加载。