Firefox 4 onBeforeUnload пользовательское сообщение
В Firefox 3, я смог написать пользовательское всплывающее окно подтверждения с:
window.onbeforeunload = function() {
if (someCondition) {
return 'Your stream will be turned off';
}
}
теперь в Firefox 4, он не показывает мое пользовательское сообщение. Сообщение по умолчанию, которое оно предоставляет, даже не точно соответствует тому, что делает мое приложение.
можно ли переопределить это сообщение по умолчанию?
4 ответов
с MDN:
обратите внимание, что в Firefox 4 и более поздних версиях возвращенная строка не отображается пользователю. Смотрите Ошибку 588292.
этот "баг" уже есть (имхо сомнительный).. таким образом, нет способа отобразить сообщение в Firefox 4. Если вы думаете, что это должно быть изменено, прокомментируйте эту ошибку, чтобы разработчики Firefox знали, что люди действительно хотят иметь возможность показывать пользовательскую строку.
В дополнение к приведенному выше ответу я улучшил обходной путь.
я использовал jquery здесь. вы также можете использовать функцию javascript по умолчанию.
$(window).bind('beforeunload', function() {
if(/Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.) >= 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.) >= 4) {
alert("Blah blah. You have to confirm you are leaving this page in the next dialogue.");
}
return "Blah blah.";
}
(показывает два диалога в Firefox, один диалог в другом месте.)
попробуйте реализовать его с сообщением подтверждения,
window.onbeforeunload=function(){
return confirm("Are you sure??");
}
конечно, когда пользователь подтверждает, отображается сообщение FF4, поэтому вам, возможно, лучше отобразить это один раз на сайте при входе/посещении. Печенье должно помочь.