недружественный пользователю onbeforeunload / onunload

Я борюсь с onbeforeunload, onunload и генерирую нужные сообщения в нужное время. Любая идея приветствуется. Вот такая ситуация:

  • когда я использую onbeforeunload, пользователь получает сообщение, чтобы выбрать, следует ли уйти, но я не могу его выключить - сообщение стандартное и появляется независимо от того, что находится в обработчике событий.
  • когда я использую onunload, я могу контролировать появляющиеся сообщения «до свидания», но я не могу предложить пользователю возможность изменить свое мнение.

Так, например, если есть данные для сохранения. При onbeforeunload появляется сообщение, независимо от состояния данных пользователя, с вопросом, хотят ли они уйти или нет. С помощью onunload я могу выбрать сообщение и проверить, есть ли несохраненные данные, прежде чем спрашивать пользователя, сохраняя им проблему, если они сохранили, но мой пользователь не может выбрать оставаться на странице.

Я что-то там упустил? Кажется, я не могу добиться того простого поведения, которое хочу - проверить статус приложения, отправить сообщение и предложить пользователю принять меры, прежде чем он уйдет. Или есть использование одного или обоих событий, чтобы получить такое поведение?


person boisvert    schedule 24.12.2011    source источник


Ответы (1)


Я сделал для вас простой пример, который, как мне кажется, может делать то, что вы хотите. К сожалению, изменить сообщение в onbeforeunload невозможно, но вы можете удалить сообщение, когда пользователь сохраняет данные. http://jsfiddle.net/JL48j/8/

person Brian Glaz    schedule 24.12.2011
comment
Просто, но понятно. Спасибо за ваш пример, это в значительной степени решает проблему. - person boisvert; 25.12.2011