假设您的保存按钮调用了一个 javascript 函数,您可以执行以下操作:
function saveFunction(doRedirect){
//normal save code
if(doRedirect)
window.location.href = "main.html";
}
注意:如果您的“正常保存代码”是 AJAX 调用,则应doRedirect
在 ajax 请求的成功回调中添加检查。
然后你可以像这样使用:
$('#closeButton').click(function() {
if(confirm("CloseWarning")) {
saveFunction(true);
} else {
window.location.href = "main.html";
}
});
使用您自己的回调的替代方法:
function saveFuncton(callback){
//normal save code
//when done (or on AJAX success)
if(callback)
callback(true);//or false if not successful
}
接着....
$('#closeButton').click(function() {
if(confirm("CloseWarning")) {
saveFunction(function(success){
if(success){
window.location.href = "main.html";
}
});
} else {
window.location.href = "main.html";
}
});
HACKY 方法(除非您绝对没有其他替代方案,否则请勿使用)
var isSaving = false;
$(document).ajaxStop(function () {
if (isSaving) {
window.location.href = "main.html";
}
});
接着...
$('#closeButton').click(function() {
if(confirm("CloseWarning")) {
isSaving = true;
$('#saveButton').click();
} else {
window.location.href = "main.html";
}
});
这可能有效,但它实际上取决于您的保存功能如何工作,以及是否有其他任何东西可能同时进行 ajax 调用。此外,如果您保存函数执行多个 AJAX 调用,则此方法可能会失败。这是一种 hacky 方法,使用它需要您自担风险!