Javascript: проверьте, уходит ли пользователь с помощью отправки формы или простой ссылки. - PullRequest
2 голосов
/ 08 мая 2009

Мне нужно что-то напомнить пользователям, когда они покидают страницу, и это можно сделать с помощью события window.onUnload. Но мне также нужно проверить, уходит ли пользователь, отправив форму на странице или нажав ссылки навигации. Я мог бы использовать событие onSubmit формы для установки флага, а затем проверить этот флаг в событии window.onUnload, но я не уверен, какой из них запускается первым.

есть идеи?

Ответы [ 3 ]

5 голосов
/ 08 мая 2009

Вы действительно хотите window.onbeforeunload

window.onbeforeunload = function (e) {
  var e = e || window.event;

  // For IE and Firefox
  if (e) {
    e.returnValue = 'Are You Sure?';
  }

  // For Safari
  return 'Are You Sure?';
};
0 голосов
/ 09 марта 2011
var isRefresh = true;
window.onunload = function () {
    alert('the page was ' + (isRefresh == false ? 'NOT ' : '') + 'refreshed');
}
$('a').live('click', function () { isRefresh = false; alert('a link was clicked'); });
$('form').bind('submit', function () { isRefresh = false; alert('form was submitted'); });

На основе Как записать событие закрытия окна браузера? . Я добавил логику обновления.

0 голосов
/ 08 мая 2009

Оказывается, что сначала запускается событие form.onSubmit, поэтому я могу использовать флаг. Я проверял это только в Firefox и Safari.

...