父页关闭了子页也关闭

背景:通过open方式打开子页面,希望父页面关闭的时候把子页面也关闭了。于是采用了给window绑定beforeunload事件的方案。然后,事情并不是想象的那样。坑爆了~快要提交测试的前一晚,发现并不是这样,想哭~

之前:我采用“给window绑定beforeunload事件”的方案,实现代码如下

$(window).bind('beforeunload',function(){
        if(playerWin != null && playerWin.closed == false){
            playerWin.close();
        }
    })

如果说,我只有一个页面A,然后页面A打开了一个子页,当页面A关闭时,子页会被关闭。但是,我采用了iframe的技术,调用子页的页面A上面有好几个父页。当我通过remove移除这个页面A的时候,并没有触发到“beforeunload”事件。然后我发现,当我关闭了整个页面的时候,页面A还没有被移除的话,就会被触发这个事件。后来查了一下定义“onbeforeunload 事件:在即将离开当前页面(刷新或关闭)时触发”。可能我用remove的原因导致事件没有触发。然而,我没有时间深究了,第二天就要提交测试了。

现在:我采用了另一种方法,子页定时的判断父页是否还在。如果父页不在了就自己关掉自己。实现代码如下

function _ishasParent(){
        if(window.opener == null || window.opener == undefined){
            window.close();
        }
        setTimeout(function(){
            _ishasParent();
        },1000);
    }

自己测试过,基本达到了目的。发这个博客也是为了给自己提个醒。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值