从iframe内部,我如何确定父页面是否已完成加载?

时间:2010-07-29 17:58:44

标签: javascript html

我可以在iframe内听取任何属性或事件以确定这一点吗?

iframe src和父页面位于不同的域中。

2 个答案:

答案 0 :(得分:4)

仅当您也可以修改父页面时。如果你不能,那就是XSS而且没有合法的方法可以做到。

<强> parent.html:

...
<body onload="theFrame.parentLoaded()">
...
<iframe src="http://other.domain.com/frame.html" name="theFrame"></iframe>
...

<强> frame.html:*

...
<script type="text/javascript" language="javascript">
function parentLoaded(){
    //code here will be executed when the parent page has finished loading
}
</script>
...

答案 1 :(得分:-1)

我知道您无法控制父页面,但如果您可以说服主机添加一些代码,您可以执行以下操作:

//OnParent Page
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script>
    var bReady = false;
    $(document).ready(function () {
        bReady = true;
    });

    function isReady() {
        return bReady;
    }
</script>

//in iframe page
<script>
    var bReady = false;
    while (bReady == false) {
        bReady = window.opener.isReady();
    }
</script>