Невозможно отвязать окно перед событием загрузки в 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);

Что я здесь делаю неправильно?
Кроме того, метод сохранения на самом деле является вызовом Ajax.


person bitblt    schedule 16.12.2010    source источник


Ответы (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;
person Nick Craver    schedule 16.12.2010
comment
Большое спасибо ... это спасло день для меня :) - person bitblt; 17.12.2010
comment
Это не будет работать в IE, вам нужно window.onbeforeunload = undefined - person brupm; 01.10.2014