window.onbeforeunload不正确地允许导航

问题描述 投票:1回答:1

下面的代码的目的是,一旦满足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();
}
javascript onbeforeunload
1个回答
1
投票

我认为此post将为您提供您所追求的答案。

TLDR

// Enable navigation prompt
window.onbeforeunload = function() {
    return true;
};
// Remove navigation prompt
window.onbeforeunload = null;
© www.soinside.com 2019 - 2024. All rights reserved.