Подтвердить что ты не робот

Невозможно отвязать событие 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.

4b9b3361

Ответ 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;