ajax呼叫中的新窗口被阻止

时间:2016-05-30 12:17:42

标签: javascript jquery ajax window

我已经在互联网上搜索了一段时间用于我的解决方案,但没有一个解决方案适用于我,或者我没有使用它(我认为)。

我有一个看起来像这样的函数,并在单击图像时被调用:

function goToGoogle() {
    setTimeout(function() {
        $.ajax("url/path", {
            data: "data"
        }, function(data){
            window.open("https://www.google.nl", "_blank");
        });
   }, 10000);
}

调用window.open时,会弹出一条消息,说弹出窗口已被阻止。

我已尝试在其中创建一个包含window.open的变量(var myWindow = window.open( ... );),然后使用myWindow.location = "www.correct.url";设置正确的网址。但是这会导致console.log出错,这表示myWindow未定义,因此无法调用位置。

我尝试的另一件事是在ajax调用中将async设置为false,但这已经折旧。

有人如何确保它打开一个新窗口,即使在点击事件后几秒钟?

顺便说一句,我需要10秒的超时时间。没有更多,没有更少。

1 个答案:

答案 0 :(得分:0)

您的代码完美无缺,因为

  

弹出一条消息,说弹出窗口已被阻止。

这只是阻止弹出窗口的浏览器策略。这取决于用户允许在您的网站上打开弹出窗口或禁止。