Firefox では、次のコマンドでカスタム確認ポップアップを作成できました。
window.onbeforeunload = function() {
if (someCondition) {
return 'Your stream will be turned off';
}
}
Firefox 4では、カスタムメッセージが表示されません。それが提供するデフォルトのメッセージは、私のアプリケーションが行うことに対して正確ではありません。
このデフォルトのメッセージは上書きできますか?
[〜#〜] mdn [〜#〜] から:
Firefox 4以降では、返された文字列はユーザーに表示されないことに注意してください。 Bug 588292 を参照してください。
この「バグ」は、実際には(疑わしい)機能です。したがって、Firefox 4でメッセージを表示する方法はありません。カスタム文字列を表示できます。
上記の回答に加えて、回避策を改善しました。
ここでjqueryを使用しました。デフォルトのJavaScript関数も使用できます。
$(window).bind('beforeunload', function() {
if(/Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
if(confirm("Are you Sure do you want to leave?")) {
history.go();
} else {
window.setTimeout(function() {
window.stop();
}, 1);
}
} else {
return "Are you Sure do you want to leave?";
}
});
Firefox 11でもテストおよび動作しています。:)
私の回避策は、onbeforeunloadにアラートを表示することです:
window.onbeforeunload=function() {
if ( /Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
alert("Blah blah. You have to confirm you are leaving this page in the next dialogue.");
}
return "Blah blah.";
}
(Firefoxには2つのダイアログが表示され、別の場所には1つのダイアログが表示されます。)
確認メッセージで実装してみてください、
window.onbeforeunload=function(){
return confirm("Are you sure??");
}
もちろん、ユーザーが確認するとFF4メッセージが表示されるため、ログイン/訪問時にサイトごとに1回表示する方がよいでしょう。 Cookieがトリックを行う必要があります。