Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以从确认对话框调用Window.open吗?_Javascript - Fatal编程技术网

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

Javascript 我可以从确认对话框调用Window.open吗?,javascript,Javascript,我可以使用javascript从确认对话框调用window.open吗 我的要求: 如果启用了浏览器弹出窗口阻止程序,则意味着我想使用window.open()打开弹出窗口但它没有发生,因此我必须显示确认消息,即“浏览器弹出窗口阻止程序已启用,现在弹出窗口已打开”。现在我单击“确定”,此时我想调用window.open()函数 <html> <body onload="openPopup();"> <head>

我可以使用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>

加载弹出窗口
函数openPopup(){
var href=http://google.com';
弹出=窗口。打开(href,“_blank”);
如果(弹出===null | |弹出类型==='undefined'){
var ret=确认(“此警报由阻止程序显示,是否继续打开?”);
如果(ret){
window.open(href,“_new”);
}
}否则{
popUp.focus();
}
}
是否有可能或有其他方法来处理这种情况?

没有

弹出窗口通常只允许在用户单击后出现,正如您在代码
onload
中看到的那样,通常不允许这样做


但是,您可以使用自己的UI创建自定义确认框,用户可以单击该确认框打开弹出窗口。这将起作用,除非浏览器的弹出窗口拦截器过于热心,以至于在浏览器本身未经事先确认的情况下,甚至可以单击打开弹出窗口。

@DontVoteMeDown感谢您的编辑。.是否要在浏览器加载后立即打开窗口,可以显示提示和加载窗口,甚至在不显示警报的情况下加载,您想要哪一个?我担心如果浏览器阻止了第一个
open()
,任何后续的
open()
也将被阻止。@Hawk我想在任何调用window.open()函数的地方打开。open()函数(不带单击函数)我应该打开弹出窗口。这意味着无论浏览器在哪里显示弹出窗口阻止程序,我都必须打开。@DontVoteMeDown是的,正确,但浏览器弹出窗口阻止程序仅在弹出窗口打开时显示,而没有用户交互(无单击事件)。如果有其他方法使用javascript/Jquery禁用浏览器弹出窗口阻止程序,请确定。我的要求是,在浏览器阻塞时打开弹出窗口。弹出窗口拦截器的全部目的是阻止弹出窗口。如果有办法禁用它,那将完全无法达到目的。这是因为网站上有带有“单击此处”字样的横幅,没有用户交互,它们就无法打开弹出窗口,而这正是拦截器的主要目的——正如你所说。当然,人们可以友好相处,在他们的网站上提供愉快的浏览体验。有时我认为不应该有弹出窗口拦截器。如果一个网站向你抛出弹出窗口,那么你停止访问它,它就会慢慢地、可怕地死去。。。。对jQuery是unicorns开发的一种神奇的编程语言。它使用JavaScript运行,但不知何故实现了不可能的壮举。