3
function warnuser()
{
    return "Don't refresh the page.";
}

window.onbeforeunload = warnuser;

ユーザーがページを更新し、ユーザーが確認ボックスで「このページを離れる」をクリックした場合、javascript関数を呼び出したいのですが、そうでない場合はそうではありません! 私はそれを行う方法について混乱しています。ありがとうございました

4

2 に答える 2

2

F5その場合にのみ、キーの押下をインターセプトしてonbeforeunloadハンドラーをセットアップする必要があります。

document.addEventListener('keydown', function(e) {
    if(e.which == 116) {
        window.onbeforeunload = function() {
            window.onbeforeunload = null;
            return "Do you really want to refresh the page?";
        }
    }
}, false);

デモ: http://jsfiddle.net/ejDrq/

ユーザーが[更新] ボタンをクリックした場合、これは機能しないことに注意してください。これを傍受することは不可能です。

于 2012-07-01T21:58:16.117 に答える
0

ページをホストしているサーバー側を制御できる場合は、semaphore( wiki:semaphore ) を使用してこれを論理的に処理できます。基本的には、サーバー側のセッションで実装される回転ロックです。安全な方法で入力して終了しなかった場合、ページの状態をリセットします。当然のことながら、回転するすべてのロックと同様に、ロックを解除するには安全な状態が必要です。

于 2012-07-01T22:07:01.837 に答える