如何知道网页已加载

时间:2013-10-11 11:25:24

标签: javascript jquery html

我有一个iframe,我在iframe中重定向页面。 如何为每个页面加载完成事件。

main.html中

<html>
<body>
    <iframe src="http://www.child.html" id="childframe" style="height:100px"></iframe>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

    <script>
    $(window).load(function(){ 
        var Body = $("#childframe").contents().find("body");
        var Element = Body.find("tag");
        // page is redirecting to new page
        $(Element[0].click());

        window.setTimeout(reallyNext, 1000);
        function reallyNext() {
            //how to know inner page is loaded  
            var result= Body.find("#tag1");
            //how to get element from anotherpage.html

            $(result).bind('DOMSubtreeModified', function(event) {                  
                //how to reach here
            }); 
        }    
    });
    </script>
</body>
</html>

child.html

<html>
<head></head>

<body>
    <p><a href="../anotherpage.html"></a><br></p>
</body>
</html>

请告诉我如何知道iframe的内页已经完成加载?

4 个答案:

答案 0 :(得分:0)

您可以在body标签内使用onload参数,该参数在加载页面后运行。 例如:

<body onload="myJavascriptFunction();" >

答案 1 :(得分:0)

$('#childframe').ready(function() {
    ...
});

$('#childframe').load(function() {
    ...
});

答案 2 :(得分:0)

<script language="javascript">
    iframe = document.getElementById("frameid");

    WaitForIFrame();

    function WaitForIFrame() {
        if (iframe.readyState != "complete") {
            setTimeout("WaitForIFrame();", 200);
        } else {
            done();
        }
    }

    function done() {
        //some code after iframe has been loaded
    }
</script>  

这应该有效

答案 3 :(得分:0)

您可以挂钩onLoad元素的<iframe /> javascript事件(如<iframe onLoad="myHandler" />,其中myHandler是您的js函数),或者,如果使用jQuery,则使用以下代码段:

$('#childframe').load(function() {
   // your code handling the iframe loaded. 
});

请注意,您的代码必须是包含iframe而不是其中页面的页面的一部分。