JS:检测子窗口何时加载“每个”时间

时间:2011-08-24 22:55:21

标签: javascript events javascript-events parent-child onload

我正在尝试使用javascript

向父,子窗口添加一些页面加载检查功能

我的目标是检测“从父窗口”,每次子窗口完全加载然后执行一些代码。


我在父窗口上使用以下代码示例:

<script type='text/javascript'>

childPage=window.open('http://www.example.com');

childOnLoad=childPage.addEventListener('load', LoadAndGo, true);

function LoadAndGo()
{
    if(confirm("Press a button")==true)
    {
        //childPage.removeEventListener ("load", childOnLoad, false);
        childPage.top.location.href="http://www.example.com";
        //childOnLoad=childPage.addEventListener('load', LoadAndGo, true);
    }
}
</script>


上一个代码将加载事件附加并检测到我的子窗口,然后在“单击确认按钮后”将其重定向到另一个页面,

我想要做的是让父窗口检测下一个子加载, 即重定向后检测负载。

我试图删除,然后重新附加一个新的onload事件“注释行”,但似乎是 父窗口仅检测到第一个子加载。



所以流程应该如下:

父母打开孩子
父检测到子负载
家长重定向孩子
父母再次检测到子负载
。 。 等等

- 我拥有共享相同域名和协议的两个页面 -No JS应该在子窗口上执行“即子窗口无法检查它的加载并将数据传递给父窗口”。

1 个答案:

答案 0 :(得分:0)

导致孩子导航不起作用后重新绑定了吗?

<script type='text/javascript'>

    var childPage = window.open('http://www.example.com');

    childPage.addEventListener('load', LoadAndGo, true);

    function LoadAndGo()
    {
        if(confirm("Press a button") == true)
        {
            childPage.top.location.href = "http://www.example.com";

            // Re-bind
            childPage.addEventListener('load', LoadAndGo, true);
        }
    }

</script>