【发布时间】:2016-05-30 12:17:41
【问题描述】:
我在互联网上搜索了一段时间的解决方案,但没有一个解决方案对我有用,或者我没有正确使用它(我认为)。
我有一个看起来像这样的函数,并在单击图像时被调用:
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"; 设置正确的 url。但这会导致 console.log 中出现错误,提示 myWindow 未定义,因此无法调用 location。
我尝试的另一件事是在 ajax 调用中将 async 设置为 false,但这已被贬值。
有没有人如何确保它打开一个新窗口,即使在点击事件几秒钟后?
顺便说一句,我需要 10 秒的超时时间。不多不少。
【问题讨论】:
-
有趣。似乎当超时时间高于 1sec(1000ms)时,chrome 说不:jsfiddle.net/x30j8ftq/2
-
苏,你有什么建议?我需要 10 秒的超时.. @Pimmol
-
我不确定。我会在这里考虑马丁的回答:stackoverflow.com/questions/4989537/…
-
@pimmol 它没有给我一个明确的解决方案。用户知道什么时候会打开一个新窗口,所以这不是问题..
标签: javascript jquery ajax window