$ (окно) .unload не стреляет - PullRequest
16 голосов
/ 22 февраля 2012

Я хочу выполнить метод действия, когда пользователь покидает определенную страницу с помощью jQuery.

Страница имеет следующий код:

    <script type="text/javascript">

        $(window).unload(function () {
            alert("Handler for .unload() was called.");
        });

    </script>

Когда я ухожу со страницыЯ никогда не вижу ожидаемого предупреждения.

Ответы [ 5 ]

30 голосов
/ 22 февраля 2012

На самом деле некоторые браузеры, такие как Google Chrome, могут блокироваться, если вы попытаетесь alert в окне unload. Как пользователь мне нравится эта функция. Оповещение каждый раз, когда вы пытаетесь отойти от страницы, отстой:

enter image description here

Замените предупреждение на console.log или что-то еще менее навязчивое для пользователя, и событие будет счастливо вызвано.

Возможно, вы также захотите оформить событие onbeforeunload .

13 голосов
/ 27 сентября 2013

jquery .on ('unload', ..); не было надежной работы для меня. я переключился на использование перед загрузкой. просто убедитесь, что вы ничего не возвращаете, иначе пользователь получит сообщение "Вы уверены, что покинули страницу"?

<script type='text/javascript'>
    $(window).on('beforeunload', function(){
         console.log("beforeUnload event!");
     });
</script>
6 голосов
/ 08 февраля 2014

как сказал бхельм до выгрузки у меня тоже работает.
возврат false в этом событии вызовет браузер по умолчанию

Вы уверены, что хотите покинуть эту страницу?


$(window).on('beforeunload', function ()
    {
        return false;
    });
0 голосов
/ 21 декабря 2016

, если вы хотите предупредить пользователя, что вы покидаете эту страницу, тогда если это

/* $(window).unload(function()
{
	//alert("you leaving this page");
	console.log("you leaving this page");
}); */

функция не работает для вас, затем замените свой код на on ("beforeunload", function) следующим образом

$(window).on("beforeunload", function()
{
	alert("you leaving this page");
	console.log("you leaving this page");
});

эта работа для меня!вы можете увидеть вывод в консольном журнале вы покидаете эту страницу

0 голосов
/ 06 мая 2013
window.onbeforeunload=navigationError;

var dont_confirm_leave = 0; var leave_message = 'You sure you want to leave?';

function navigationError(e) 
  {
    if(dont_confirm_leave!==1)
    {
      if(!e) e = window.event;
      //e.cancelBubble is supported by IE - this will kill the bubbling process.
      e.cancelBubble = true;
      e.returnValue = leave_message;
      //e.stopPropagation works in Firefox.
      if (e.stopPropagation) 
      {
        e.stopPropagation();
        e.preventDefault();
      }

      //return works for Chrome and Safari
      return leave_message;
    }
  }
...