下面的代码的目的是,一旦满足if语句中的两个条件,则会显示hintForForSavingFormData。幸运的是,这种情况正在发生,并且导航窗口在正确的时间出现。导航窗口打开,告诉用户可以继续保存或不保存,并带有2个按钮选项。但是,问题在于,在用户甚至没有机会单击导航窗口中的那些按钮之一之前,该页面已错误地导航到用户尝试访问的页面。但是,这应该不会发生,直到用户单击继续而不保存或继续并保存在对话框窗口中。为什么window.onbeforeunload仍允许该导航,直到用户与导航窗口交互为止?任何帮助,将不胜感激。谢谢!
window.onload = function () {
// initialize
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedTwo);
// Notify Microsoft Ajax
if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
};
function pageLoadedTwo() {
window.onbeforeunload = checkIfFormInStudentWindow;
}
function checkIfFormInWindow(e) {
if (($("#searchWindow").is(':visible')) && (document.URL.indexOf('/NewForms/') > -1)) {
return promptForSavingFormData();
}
}
function promptForSavingFormData() {
navigationWindow.center();
navigationWindow.open();
}
我认为此post将为您提供您所追求的答案。
TLDR
// Enable navigation prompt
window.onbeforeunload = function() {
return true;
};
// Remove navigation prompt
window.onbeforeunload = null;