Невозможно отвязать событие beforeunload окна в JQuery
У меня есть страница, где пользователь может перетаскивать объекты и сохранять их как изображение. Когда пользователь переходит от страницы, запускается событие beforeunload. Теперь это происходит каждый раз. Я хочу сделать это, отвязать событие, если пользователь сохранил его работу, чтобы сообщение не появилось снова. Для этого я использовал
unbind в jQuery. Но, похоже, это не работает. Ниже приведен код для привязки и открепления событий.
var notSaved = function()
{
return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
}
$(window).bind('beforeunload', notSaved);
После вызова метода сохранения
$(window).unbind('beforeunload', notSaved);
Что я здесь делаю неправильно?
Кроме того, метод save на самом деле является вызовом Ajax.
Ответы
Ответ 1
beforeunload
не работает надежно таким образом, насколько привязка идет. Вы должны назначить его изначально:
window.onbeforeunload = function() {
return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
}
И в вашем методе сохранения:
window.onbeforeunload = null;