Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Корректный уход с сайта (https://javascript.ru/forum/events/18802-korrektnyjj-ukhod-s-sajjta.html)

AndreyS 15.07.2011 23:05

Корректный уход с сайта
 
Здравствуйте!

Нужно сделать корректный уход с сайта.
На странице есть ссылка "Выйти", когда юзер её нажимает, то запускается php-скрипт (закрывает сессии, делает запись в БД). Но юзер может и не нажать ссылку, а просто закрыть страницу или перейти на другой сайт.

Использовал onbeforeunload и confirm(), но работает не правильно...

Не могу понять что в коде написать, по-этому опишу словами.
Юзер нажимает ссылку на внешний какой-нибудь сайт.
запускается моя js-функция:
if (confirm("Покинуть страницу?")) {
          запустить мой php-скрипт;
          осуществить переход по нажатой ссылке; 
        } else {
          блокровать переадресацию по ссылке; // остаться на сайте и не переходить по ссылке
        }


То есть нужно отловить событие ухода и потом написать обработчик.
Видел много раз такое на разных сайтах.

Подскажите пожалуйста, я вывел диалоговое окно, как написать обработчик для кнопок ???

trikadin 15.07.2011 23:14

<script>
window.onunload= function() {
 alert("До свидания!");
};
</script>
<a href="http://yandex.ru">Нажмите на ссылку, чтобы понять</a>

AndreyS 16.07.2011 13:48

Нужно что бы при уходе с сайта вывелось окно с двумя кнопками и в зависимости от выбора кнопки делать те или иные действия.
В примере выше просто выводится сообщение.

Например, в том же "контакте" при нажатии на внешнюю ссылку появляется окно, где можно выбрать перейти по ссылке или остаться на странице.
Вот что то подобное мне и надо.

walik 16.07.2011 13:56

AndreyS,
Не тупи, trikadin показал на какое событие нужно вешать confirm.

AndreyS 16.07.2011 17:26

Сделал confirm.
При нажатии на какую-нибудь ссылку появляется окно, НО если я жму отмена то все равно происходит переход по ссылки, а нужно чтоб осталось на той же странице.
То есть жму Ок или Отмена результат одинаковый - переход по нажатой ссылке.

trikadin 16.07.2011 18:16

<script>
window.onbeforeunload= function() {
 return "Вы точно хотите уйти?";
};
</script>
<a href="http://yandex.ru">Нажмите на ссылку, чтобы понять</a>

AndreyS 16.07.2011 18:39

О спасибо большое!!!
А можно, например, если нажать кнопку "Уйти" со страницы" выполнить еще один скрипт мой, а потом сделать переход по ссылке?

trikadin 16.07.2011 18:47

Цитата:

Сообщение от AndreyS
А можно, например, если нажать кнопку "Уйти" со страницы" выполнить еще один скрипт мой, а потом сделать переход по ссылке?

Кто, собственно, мешает попробовать?

AndreyS 17.07.2011 16:13

Подскажите пожалуйста это вообще возможно, запустить свой скрипт по нажатию кнопки в данном окне.
Весь интернет облазил ничего не нашел.
Только вставляю условие сразу перестает работать.

Как обработать нажатие кнопок???

trikadin 17.07.2011 16:19

document.onkeydown=function() {alert("Вы нажали кнопку!")};


А, тут не сработает.


Часовой пояс GMT +3, время: 08:11.