gpt4 book ai didi

javascript - window.open() 在 AJAX 成功时的工作方式不同

转载 作者:可可西里 更新时间:2023-11-01 01:27:21 25 4
gpt4 key购买 nike

如果我只给你看那个例子,我会更容易解释这个问题 -> http://jsfiddle.net/RU2SM/
如您所见,有 2 个按钮,一个称为“AJAX”,一个称为“直接”...因此,如果您单击“直接”,它会打开窗口(Chrome 上的新标签),但如果我尝试制作 window.open( ) 在 AJAX 成功处理程序上,它的工作方式不同。
我确定问题出在 AJAX,但我不知道如何解决。
将不胜感激任何好主意。谢谢

最佳答案

这就像一个魅力:

// Direct window.open()
$('#btnDirect').on('click',function(){
window.open('http://google.com')
})
var success = false; //NOTE THIS

// AJAX window.open()
$('#btnAJAX').on("click", function(){
$.ajax({
url: "/user/login/",
context: document.body,
async:false, //NOTE THIS
success: function(){ //THIS ALSO CHANGED
success = true
}
});
if(success){ //AND THIS CHANGED
window.open('http://google.com')
}
})

这样做是在 Ajax 调用成功时将变量 success 设置为 true。
async:false 属性确保在 Ajax 调用完成后触发 if 语句。
因此 window.open 在与您的直接链接相同的情况下被触发。

关于javascript - window.open() 在 AJAX 成功时的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10223388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com