1

window.onbeforeunloadデフォルトのメッセージを生成する関数があります:

「このページから移動してもよろしいですか....」 .

クリックするOKと新しいリンクにリダイレクトされ、押すcancelと同じページにリダイレクトされます。

OK ページを押して離れたときに、ページからデータを保存したいと思います。OKまたはが押されたかどうかを知るにはどうすればよいでしょうかcancel。その後、イベント呼び出しを行い、「OK」/「キャンセル」オプションを続行します。

4

3 に答える 3

0

考えられるアプローチとして、イベントにフックすることも考えられます。onunloadそのハンドラーが呼び出された場合、ユーザーが を選択したことがわかりますOK

onbeforeunload、しばらくしてから呼び出されるタイムアウト コールバックを設定します (例: 1 秒)。それが呼び出された場合、ユーザーは を選択した可能性がありますCancel

ただし、競合状態に関してこれがどれほど安全かはわかりません。

于 2011-04-07T10:17:54.797 に答える
0
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;
于 2011-04-07T10:15:36.233 に答える
-1

JavaScript の「確認」ダイアログを使用していますか?

if(confirm("Are you sure you want to navigate away from this page....")) {
    // OK was pressed
} else {
    // Cancel was pressed
}
于 2011-04-07T10:08:45.513 に答える