Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > При onunload вызвать скрипт?


Автор: SatanClaus 16.12.2007, 18:50
Нужно вызвать скрипт на стороне сервера при закрытии клиентского окна. При этом нужно, чтоб новое окно не появлялось. Как такое реализовать?  smile 

Автор: Ghirik 16.12.2007, 19:53
А результат работы серверного скрипта нужен на клиентской стороне?

Автор: SatanClaus 16.12.2007, 20:03
Нет, результат выполнения скрипта, удаление некоторых папок на стороне сервера 

Автор: Ghirik 16.12.2007, 20:20
Ну а в чем проблема? Напишите в тэге body:
Код

<body onunload="document.forms[0].submit()">

это если форма одна на странице.

Добавлено через 7 минут и 31 секунду
Нет, поспешил...
Это для ухода со страницы, а для закрытия окна.... счас подумаю...

Добавлено через 11 минут и 48 секунд
Ни как!!! Только, если Вы знаете, что он сделает, прежде чем нажмет крестик у окна. А почему именно по событию закрытия окна? onunload - это переход на другой адрес, а закрытие браузера не поймать.
Или Вам нужно закрывать дочернее окно?

Автор: Ghirik 16.12.2007, 20:41
Я всё же не понял, окно, при закрытии которого следует запускать серверный сценарий, открывается из другого окна? Или это основное окно браузера? Или это типа всплывающего окна?
Если окно открыто из другого документа, и потом закрывается, то такое событие можно отловить. Но если это основное окно браузера, то не реально.

Автор: SatanClaus 16.12.2007, 20:58
Окно закрытие которого нужно отловить(это не главное окно браузера) запускается из другого окна...

Автор: Ghirik 16.12.2007, 21:43
Попробуйте так:

В основной странице - форма и скрытый фрэйм:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
</head>
<body>
<form method="POST" action="test.php" target="document.frames[0]">
<p><input type="submit" value="Отправить" name="B1"></p>
</form>
<p>&nbsp;</p>
<p><a href="2.htm" target="_blank"><span lang="ru">Открыть окно</span></a></p>
<iframe name="frameNone" style="display: none">
</iframe>
</body>
</html>


А в открываемой записать так:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
</head>
<body onunload="parent.forms[0].submit()">

</body>
</html>


Я проверял только по алерту, но сабмит то-же, должен сработать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)