Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Событие onbeforeunload в Chrome. (https://javascript.ru/forum/css-html-browser/29825-sobytie-onbeforeunload-v-chrome.html)

Mr_Shad0w 12.07.2012 21:36

Событие onbeforeunload в Chrome.
 
Доброго времени суток. Недавно начал дорабатывать свою систему регистрации на некотором сайте, а именно добавил статус присутствия на сайте пользователя (offline/online). Распространяться на эту тему не буду, ибо это будет оффтоп. При тесте сего скрипта под Chrome, столкнулся с ошибкой: скрипт просто не исполняется, но под Firefox работает как часы. На сколько я знаю, под Хромом работают только подобные функции:
window.onbeforeunload=function (){
	return "Bla bla bla";
	}
А как заставить работать мой скрипт?
function get_online_status(id, status, type){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function ()
  {
  	if(xmlhttp.readyState==4 && xmlhttp.status==200)
  	{
    document.getElementById("online_status").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open('GET', 'http://example.ru/users/online.php?id='+id+'&status='+status+'&type='+type, true);
xmlhttp.send(null);
}
window.onreadystatechange=get_online_status(<?=$user_id;?>, '1', '1');
window.onbeforeunload=function (){
	get_online_status(<?=$user_id;?>, '0', '1');
	}

P.S. В js я нуб, просьба не закидывать тухлыми помидорами)

dmitriymar 12.07.2012 23:07

не вижу причин чтоб это и в фф работало. у вас аякс запрос асинхронный.
Цитата:

Сообщение от Mr_Shad0w
а именно добавил статус присутствия на сайте пользователя (offline/online).

да и о подходе стоит задуматься-не думали почему на сайтах с подобной вещью -постоянно запросы гоняются, если можно просто отследить закрытие окна браузера?

Mr_Shad0w 13.07.2012 13:22

dmitriymar, спасибо, я уже нашёл иной способ для реализации этой системы.


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