|
|
|
| Всем привет помогите как зделать если можно.
Вот закрыл я окно браузера (нажал на крестик) только тогда он выполнит определёную команду.
Пример: закрыл я окно чата а он выкинул меня из списка on-line. | |
|
|
|
|
|
|
|
для: 70-й_регион
(27.01.2006 в 16:14)
| | повесь код на событие onUnload
<head>
<script language="JavaScript">
<!--
function ft(){
var t = new Date();
var th = t.getHours();
var tm = t.getMinutes();
var ts = t.getSeconds();
var time = th + ":" + tm + ":" + ts;
alert("уже уходите? Сейчас только " + time);
}
//-->
</script>
</head>
<body onUnload="ft()">
</body> | |
|
|
|
|
|
|
|
для: AlexSol
(27.01.2006 в 16:22)
| | Нет, тут требуется на сервере проделать. Наиболее надёжно обращаться периодически к странице, проверять её существование по XmlHttpRequest (т.е. страница к серверу). По onUnload она может просто не успеть передать состояние. | |
|
|
|
|
|
|
|
для: 12345
(27.01.2006 в 16:49)
| | а можно поподробнее про XmlHttpRequest то это я вообще впервые слышу.
Мне в принципе нужно когда после закрытия окна чата меня выкинула из списка on-line.
Как это можно зделать? | |
|
|
|
|
|
|
|
для: 70-й_регион
(27.01.2006 в 18:13)
| | Начать можно с этого примера, который специально сокращён -
<br>
<B>Короткий пример</B> <u onClick=loadXMLDoc(this,'JsPrimeryCode-40.xml')>XMLHttpRequest</u><br>
<br>
<script>
function loadXMLDoc(t,url){var Q=new Object;
Q=(window.XMLHttpRequest?new XMLHttpRequest():
(window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new Object));
Q.onreadystatechange=function(){ // only if req. shows "complete"
if (Q.readyState==4){//alert(Q.status+' '+Q.statusText); // only if "OK"
if (Q.status==200||location.href.indexOf('http:')<0&&Q.status==0){t.innerHTML+=Q.responseText;
}
}};
Q.open("GET",url+'?'+Math.random(),!0);Q.send(null);
}
</script>
|
2-й файл (JsPrimeryCode-40.xml) -
<response value="12345">
<<method value="123456">This is </method>
example <result>of Suggest></result>
</response>
| Потом на место 2-го файла ставишь php, отмечающий, что пользователь пока ещё в онлайне. Подробнее о методе - http://javascript.aho.ru/article4.shtml#articles. По unload тоже можно прикрутить, но не всегда успеет отправиться, если вообще сможет. Окно ведь сразу закрывается, а скрипт работает в окне (в процессе окна).
То же самое можно делать просто вызовом динамической картинки (обновлять по innerHTML) с src=your.php?random_parameter=2149545654 . Т.е. полностью в технологию можно не вдаваться, только сообщать периодически, что ты в онлайне. | |
|
|
|