允许弹出窗口一次后引用父窗口

时间:2016-10-27 12:58:58

标签: javascript jquery popup

因此,无论何时为我的网站启用弹出窗口,我都会尝试进行测试。我的窗口应该被浏览器的弹出窗口拦截器阻止,除非它们已被允许。如果允许弹出窗口一切正常,因为我可以在我的父页面中直接打开窗口时进行测试。

问题是如果用户允许稍后通过允许打开弹出窗口打开弹出窗口,我仍然希望将测试标记为成功。我这样做的唯一方法就是在我的父页面上调用一些函数,但是以这种方式打开的窗口有null window.opener,我不能直接从父窗口设置子窗口上的对象,因为我没有&# 39;不知道什么时候会打开。

以这种方式打开时,有没有办法从子窗口引用我的父窗口?

或者,只要子窗口成功打开,可以在父窗口上调用函数的任何其他解决方法? 也许事件事件我可以在打开这样的窗口时挂钩,但我找不到任何这样的事件。

示例代码:

function () {
    var myWin = window.open('popupWin.html', '_blank', 'resizable=no,scrollbars=no,height=1,width=1', true);
    if (!myWin || myWin == null || typeof (myWin) == 'undefined')
        SetPopupResult(false);
    else {
        SetPopupResult(true);
        myWin.close();
    }
}

popupWin.html是一个空白页面,其中包含以下脚本:

    <script>
            window.opener.SetPopupResult(true); //throws Cannot read property 'SetPopupResult' of null
            setTimeout(function () {  
                window.close();
            }, 1000);
    </script>

编辑:忘了在Google-Chrome中提到这个问题到目前为止,firefox似乎没有这个问题而且window.opener是正确的,IE的行为是不同的,因为它刷新页面并打开弹出窗口,就像它们已启用一样。

0 个答案:

没有答案
相关问题