Ответ 1
Удалите строку return null
, и все должно быть хорошо (в Javascript null
и undefined
есть разные вещи).
Кстати, MDN говорит, что для максимальной совместимости вы должны принять параметр event
и установить event.returnValue
.
В моем веб-приложении есть следующее:
$(window).bind('beforeunload', function() {
if(unSavedChanges == true)
{
return 'You have unsaved changes';
}
return null;
});
это отлично работает в Safari и Firefox (за исключением того, что firefox не отображает мое настраиваемое сообщение в диалоговом окне onBeforeUnload). Однако в IE 8 в Windows 7 всегда отображается уведомление onBeforeUnload, в частности, если нет несохраненных изменений, он просто сказал бы "null". Как я могу запретить IE показывать уведомление onBeforeUnload, когда пользователь сохранил все и хочет уйти?
в соответствии с предложением Джона, я удалил строку return null
, теперь код читает
$(window).bind('beforeunload', function() {
if(unSavedChanges == true)
{
return 'You have unsaved changes';
}
});
Удалите строку return null
, и все должно быть хорошо (в Javascript null
и undefined
есть разные вещи).
Кстати, MDN говорит, что для максимальной совместимости вы должны принять параметр event
и установить event.returnValue
.
Я использую обычный javascript для этого и отлично работаю
function setConfirmUnload(on) {
window.onbeforeunload = (on) ? unloadMessage : null;
}
function unloadMessage() {
return 'Please stay on the page';
}