Пользовательское сообщение Firefox 4 onBeforeUnload
В Firefox 3 я смог написать собственное всплывающее окно с подтверждением:
window.onbeforeunload = function() {
if (someCondition) {
return 'Your stream will be turned off';
}
}
Теперь в Firefox 4 он не показывает мое пользовательское сообщение. Сообщение по умолчанию, которое оно предоставляет, даже не точно соответствует моему приложению.
![firefox 4 confirm]()
Можно ли переопределить это сообщение по умолчанию?
Ответы
Ответ 1
От MDN:
Обратите внимание, что в Firefox 4 и более поздних версиях возвращаемая строка не отображается пользователю. См. Bug 588292.
Этот "ошибка" на самом деле является функцией (imho questionable), поэтому нет способа отобразить сообщение в Firefox 4. Если вы думаете, что его нужно изменить, прокомментируйте эту ошибку, чтобы разработчики Firefox знали, что люди на самом деле хотите иметь возможность отображать пользовательскую строку.
Ответ 2
Дополнение к вышеуказанному ответу, я улучшил обходное решение.
Я использовал 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.:)
Ответ 3
Мое обходное решение - показать оповещение в 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, один диалог в другом месте.)
Ответ 4
Попробуйте выполнить его с подтверждением,
window.onbeforeunload=function(){
return confirm("Are you sure??");
}
конечно, когда пользователь подтверждает, тогда отображается сообщение FF4,
поэтому вы можете лучше отобразить это один раз на сайт при входе/посещении.
Печенье должно сделать трюк.