Есть ли способ определить закрытие страницы с помощью JavaScript? - PullRequest
3 голосов
/ 06 мая 2009

Я смотрел несколько тем здесь, в основном использовал это: window.onbeforeunload = function (e) { var e = e || window.event;

// IE & Firefox если (е) { e.returnValue = 'Вы уверены?'; }

// Для сафари return 'Вы уверены?'; };

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

Ответы [ 2 ]

3 голосов
/ 06 мая 2009
function OnUnLoad()
{
    if (window.event.clientY < 0 && window.event.clientX < 0)
    {
        //cleanup code goes here...
    }       
}

Это работает для меня во всех браузерах. Но закрытие вкладок, кажется, вызывает проблемы. На самом деле, нет «задокументированного» способа сделать это.

2 голосов
/ 06 мая 2009

На самом деле нет способа разграничить два разных события в Javascript. Вы можете использовать подход GMail и использовать AJAX для всего, чтобы никогда не вызывать перезагрузку страницы. Это означает, что единственный раз, когда вызывается OnBeforeUnload, это когда пользователь фактически покидает страницу. Альтернативой является включение JS во все ваши ссылки, чтобы отключить сценарий OnBeforeUnload, когда они нажимают на ссылку, но вы хотите, чтобы даже срабатывал даже, когда браузер фактически закрывается.

Что касается браузера, то нет никакой разницы между пользователем, нажимающим на ссылку, чтобы перейти от вашей страницы, и нажатием кнопки закрытия браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...