window.onbeforeunload
デフォルトのメッセージを生成する関数があります:
「このページから移動してもよろしいですか....」 .
クリックするOKと新しいリンクにリダイレクトされ、押すcancelと同じページにリダイレクトされます。
OK ページを押して離れたときに、ページからデータを保存したいと思います。OKまたはが押されたかどうかを知るにはどうすればよいでしょうかcancel。その後、イベント呼び出しを行い、「OK」/「キャンセル」オプションを続行します。
window.onbeforeunload
デフォルトのメッセージを生成する関数があります:
「このページから移動してもよろしいですか....」 .
クリックするOKと新しいリンクにリダイレクトされ、押すcancelと同じページにリダイレクトされます。
OK ページを押して離れたときに、ページからデータを保存したいと思います。OKまたはが押されたかどうかを知るにはどうすればよいでしょうかcancel。その後、イベント呼び出しを行い、「OK」/「キャンセル」オプションを続行します。
考えられるアプローチとして、イベントにフックすることも考えられます。onunload
そのハンドラーが呼び出された場合、ユーザーが を選択したことがわかりますOK
。
でonbeforeunload
、しばらくしてから呼び出されるタイムアウト コールバックを設定します (例: 1 秒)。それが呼び出された場合、ユーザーは を選択した可能性がありますCancel
。
ただし、競合状態に関してこれがどれほど安全かはわかりません。
function leavePage() {
//do your thing like saving the data in the session
return "Some data entered may be lost."; //a text needs to be returned
}
window.onbeforeunload = leavePage;
JavaScript の「確認」ダイアログを使用していますか?
if(confirm("Are you sure you want to navigate away from this page....")) {
// OK was pressed
} else {
// Cancel was pressed
}