Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.03.2013, 18:44
Аспирант
Отправить личное сообщение для IgorN Посмотреть профиль Найти все сообщения от IgorN
 
Регистрация: 26.11.2008
Сообщений: 35

Отловить уход со страницы без учета обновления страницы
Всем привет! У меня есть задача, видео звонка.
Сейчас пытаюсь решить вопрос с форс-мажорными ситуациями.
Например: человек, закрыл браузер, или перешол на другую страницу(клацнул на пункт меню, ввел другой урл и т.д.)
Может у него комп вырубился.
Т.е. обрабатываем все ситуации, кроме обновления страницы.
Как это сделать?
Мне надо уведомить сервер, что бы он принял ряд действий.
Погуглил эту тему. Нашел варианты
$( window.location ).bind(
                "change",
                function(){
                   alert('Test1');
                    return false;
                }
        );
        $(window).unload(function() {
            alert('Test2');
            return false;
        });
        window.onbeforeunload = function (event) {
            alert(event.target.URL);return false;}

Работает только последний. Вроде как то что нужно.
Но не позволяет решить вопрос с обновление страницы, так как объект event не содержит инфу о месте куда намылился пользователь.
Может я плохо смотрел, или не с того угла зашел...

Нужна помощь.
Всем спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.03.2013, 19:03
Интересующийся
Отправить личное сообщение для I_nub Посмотреть профиль Найти все сообщения от I_nub
 
Регистрация: 28.02.2013
Сообщений: 23

<html>
<head>
<title>Дополнительное окно прощания</title>
<script language="JavaScript">
<!-- //
function bye()
{
alert("До свидания !");
}
// -->
</script>
</head>
<body onunload="bye()">
</body>
</html>


Но ето только окно прощания
Ответить с цитированием
  #3 (permalink)  
Старый 11.03.2013, 19:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В хроме unload срабатывает, но алерт блокируется браузером.
Ответить с цитированием
  #4 (permalink)  
Старый 11.03.2013, 19:10
Аспирант
Отправить личное сообщение для IgorN Посмотреть профиль Найти все сообщения от IgorN
 
Регистрация: 26.11.2008
Сообщений: 35

Сообщение от I_nub Посмотреть сообщение
<html>
<head>
<title>Дополнительное окно прощания</title>
<script language="JavaScript">
<!-- //
function bye()
{
alert("До свидания !");
}
// -->
</script>
</head>
<body onunload="bye()">
</body>
</html>


Но ето только окно прощания
У меня кстати не работает, это в FF and Chrome, уже пробовал.
Видимо по этому не пашет и $(window).unload
Пока работает только window.onbeforeunload
Посмотрел что нет уже событий у объект window.location, поэтому первый вариант и не канает.
Ответить с цитированием
  #5 (permalink)  
Старый 11.03.2013, 19:12
Аспирант
Отправить личное сообщение для IgorN Посмотреть профиль Найти все сообщения от IgorN
 
Регистрация: 26.11.2008
Сообщений: 35

Друг, подкинул идею
Цитата:
сделай таймер на секунду или две и суй в куки инфу с о сроком жизни +1 секунда, не обновился код - кука удалилась и следовательно ушел, а не перезагрузился
+ есть вариант общения между страницами по методу вконтакте плеера
С куками интересный вариант. По реализации плеера, не удалось пока найти инфу.
Ответить с цитированием
  #6 (permalink)  
Старый 11.03.2013, 19:28
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

IgorN,
Прописывайте при уходе текущий адрес в window.name и первым делом его считывайте - если пользователь лишь обновил страницу, то адреса совпадут
Ответить с цитированием
  #7 (permalink)  
Старый 12.03.2013, 05:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от danik.js
Видимо по этому не пашет и $(window).unload
Кому что видимо, а что и невидимо) Мне например видимо по этому:
Сообщение от danik.js
В хроме unload срабатывает, но алерт блокируется браузером.
Сообщение от Deff
если пользователь лишь обновил страницу, то адреса совпадут
Прикольная тема. Знал ведь что есть способ отличить перезагрузку от чего-то другого. По идее еще может быть можно использовать sessionStorage, который будет очищаться при уходе со страницы.
Вот только в событиях unload, beforeundload никак ведь не определить - уходит юзер, или перезагружает страницу. Вобще, если речь идет о приложении, а не обычном вебсайте, то почему бы не сделать его одностраничным, на ajax? И одной проблемой меньше было бы.
Ответить с цитированием
  #8 (permalink)  
Старый 12.03.2013, 16:55
Интересующийся
Отправить личное сообщение для I_nub Посмотреть профиль Найти все сообщения от I_nub
 
Регистрация: 28.02.2013
Сообщений: 23

Сообщение от IgorN
У меня кстати не работает, это в FF and Chrome, уже пробовал.
да ето правда
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновления изображения без перезагрузки страницы A.N.R.I jQuery 13 12.03.2018 21:18
Нужно, чтобы getTime() постоянно показывала текущее время без обновления страницы aldrve Общие вопросы Javascript 6 03.10.2017 19:29
Прогрузка изображений по селект в том же окне без обновления страницы arturfjodrv Библиотеки/Тулкиты/Фреймворки 2 05.04.2012 16:45
Get запрос в Greasemonkey без обновления страницы 100matolog Общие вопросы Javascript 1 03.10.2011 04:37
Работа js +php без обновления страницы Jekel Javascript под браузер 18 29.11.2009 20:17