我可以从确认对话框调用Window.open吗?

时间:2014-05-07 14:03:09

标签: javascript

我可以使用javascript从确认对话框调用window.open吗?

我的要求: 如果启用了浏览器弹出窗口阻止程序意味着,我想使用window.open();打开弹出窗口,但它没有发生,所以我必须显示确认消息是"浏览器弹出窗口阻止程序已启用,现在弹出已打开"。现在我点击'确定',那时我想调用window.open()函数。

<html>
    <body onload="openPopup();">
        <head>
            onload Popup Window
        </head>
    </body>

    <script>
        function openPopup () {
            var href= 'http://google.com';
            popUp = window.open(href, "_blank");
            if (popUp === null || typeof popUp === 'undefined') {
                var ret = confirm("this alert is displayed by Blocker, Continue to Open ?");
                if(ret){
                    window.open(href,"_new");
                }
            } else {
                popUp.focus();
            }
        }
    </script>

是否有可能或有其他方法来处理这种情况?

1 个答案:

答案 0 :(得分:5)

没有

通常只允许在用户点击后弹出窗口,并且您已经在代码中看到onload通常不会允许弹出窗口。

但是,您可以使用自己的UI创建自定义确认框,用户可以单击该框以打开弹出窗口。这将起作用,除非浏览器的弹出窗口阻止程序过于频繁,甚至无法在浏览器本身内事先确认即可阻止点击打开弹出窗口。