0

我有一个 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

4 回答 4

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

或者

$('#childframe').load(function() {
    ...
});
于 2013-10-11T11:29:22.757 回答
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>  

这应该工作

于 2013-10-11T11:29:51.693 回答
0

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

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

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

于 2013-10-11T11:30:11.867 回答
0

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

<body onload="myJavascriptFunction();" >
于 2013-10-11T11:28:43.283 回答