function warnuser()
{
return "Don't refresh the page.";
}
window.onbeforeunload = warnuser;
ユーザーがページを更新し、ユーザーが確認ボックスで「このページを離れる」をクリックした場合、javascript関数を呼び出したいのですが、そうでない場合はそうではありません! 私はそれを行う方法について混乱しています。ありがとうございました
function warnuser()
{
return "Don't refresh the page.";
}
window.onbeforeunload = warnuser;
ユーザーがページを更新し、ユーザーが確認ボックスで「このページを離れる」をクリックした場合、javascript関数を呼び出したいのですが、そうでない場合はそうではありません! 私はそれを行う方法について混乱しています。ありがとうございました
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/
ユーザーが[更新] ボタンをクリックした場合、これは機能しないことに注意してください。これを傍受することは不可能です。
ページをホストしているサーバー側を制御できる場合は、semaphore
( wiki:semaphore ) を使用してこれを論理的に処理できます。基本的には、サーバー側のセッションで実装される回転ロックです。安全な方法で入力して終了しなかった場合、ページの状態をリセットします。当然のことながら、回転するすべてのロックと同様に、ロックを解除するには安全な状態が必要です。