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

$(window).unload не стреляет

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

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

    <script type="text/javascript">

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

    </script>

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

4b9b3361

Ответ 1

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

enter image description here

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

Вы также можете проверить событие onbeforeunload.

Ответ 2

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

<script type='text/javascript'>
    $(window).on('beforeunload', function(){
         console.log("beforeUnload event!");
     });
</script>

Ответ 3

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

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


$(window).on('beforeunload', function ()
    {
        return false;
    });

Ответ 4

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;
    }
  }

Ответ 5

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

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