window.onbeforeunload が適切にトリガーされています。確認ボックスを表示して、ユーザーがウィンドウをナビゲート (クローズ) していること、および保存されていない作業が消去されることを確認します。
ユーザーがリンクをクリックしてページから移動した場合にこれをトリガーしたくないという独特の状況がありますが、関数内でリンクがクリックされて関数が停止したかどうかを検出する方法がわかりません. これは私がコードのために持っているものです:
window.onbeforeunload = function() {
var message = 'You are leaving the page.';
/* If this is Firefox */
if(/Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
if(confirm(message)) {
history.go();
}
else {
window.setTimeout(function() {
window.stop();
}, 1);
}
}
/* Everything else */
else {
return message;
}
}