Код кода копирования следующим образом:
// function window.onunload () {alert ('Это то, что вы хотите сделать, сделайте это после закрытия веб -страницы!');
// function windows.onbeforeUnload () {alert ('Это то, что вы хотите сделать, сделайте это перед закрытием веб -страницы! »)}
function window.onunload () {
If (window.screenleft> = 10000 && window.screentop> = 10000) ||
Alert (window.screenleft+","+window.screentop);
// Действие, которое необходимо запустить, когда пользователь должен быть закрыт нормально
местоположение = 'handler1.ashx';
}
}
</script>
Handler1.ashx:
Код кода копирования следующим образом:
Использование системы;
Использование System.collections.gneric;
Использование System.linq;
Использование System.Web;
Использование System.Web.Services;
Использование System.Web.SessionState;
Пространство имен WebApplication1
{{
/// <summary>
/// $ codebehindclassname $
/// </summary>
[Webservice (namespace = "http://tempuri.org/")]]]
[WebserviceBinding (conformsto = wsiprofiles.basicprofile1_1)]]
Общественный класс обработчик1: ihttphandler, iRequiressessionState
{{
Public void ProcessRequest (контекст HTTPContext)
{{
context.response.contenttype = "text/plain";
context.session.abandon ();
context.session.clear ();
}
Общественный подъемник
{{
получать
{{
Вернуть ложь;
}
}
}
}
объяснять:
Форма общего участника участника создаст сеанс или файл cookie после входа члена, а затем вам нужно выйти из соединения или выйти в новом новом новом новом новом. Когда участники непосредственно закрывают окно, серия выхода, связанного с выходом, не вызвалась. И они будут очищены до тех пор, пока сеанс сервера не истекает.
К счастью, я наконец нашел способ захватить пользователей, используя ALT+F4, строку заголовка, правый, дважды -щелкните строку заголовка и напрямую нажмите кнопку закрытия. Конечно, это не может быть захвачено для минимизации на панели задач.
Код кода копирования следующим образом:
<script language = "javascript">
<!-
function window.onunload () {
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
// Действие, которое необходимо запустить, когда пользователь должен быть закрыт нормально
}
}
->
</script>
иллюстрировать:
Window.screenlect = 10000 + ширина границы (2 × 2) = 10004
Window.screntop = 10000 + панель инструментов High + Title Bar High = 10097
Следует объяснить, что эти свойства координат на экране на добыче нагрузка являются нормальными значениями.
ScreenLeft: Получите x координату верхнего левого угла области клиента браузера по сравнению с верхним левым углом экрана.
Экрана: Получите координату y верхнего левого угла области клиента браузера по сравнению с верхним левым углом экрана.
Я предполагаю, что специальное значение будет создано, когда окно будет уничтожено. В нормальных обстоятельствах значение не превысит значение.
Теперь проблема заключается в том, что использование windo.location onbeforuunload обычно может отправлять запрос на указанный URL -адрес, но метод не может быть эффективно выполнен в событии Enuunload. Решение состоит в том, чтобы открыть новое окно, чтобы закрыть его.
Мы можем написать такие слова вместо серии Window.Location. Потому что портальные веб -сайты включают несколько серверов веб -сайтов Cross -Server. После выхода из единого входа вам необходимо выйти, чтобы достичь ожидаемого эффекта портала.
var newwindow;
Window.opner = null;
newWindow = window.open (url, pagename, 'height = 0, width = 0');
newWindow.opner = null;
newwindow.close ();
Нимфо
Этот сегмент кода был протестирован. OnbeForeUnload - это событие, которое страница будет вызвана до удаления.
Таким образом, удаление, по сути, представляет собой страницы, которые делают функцию выхода непосредственно, открывая новое окно. Он может быть приостановлен в течение одной или двух секунд, когда его называют, или закрыть окно на специальной странице выхода. Страница обычно выходит и возвращается на домашнюю страницу.
[Примечание] Если вы не судите в Window.onunload, вы запустите событие, если не судите страницу обновления. Следовательно, необходимо судить и захватить конкретные операции, чтобы блокировать некоторые нормальные операции.
Непрерывно: как очистить сеанс, прежде чем пользователь напрямую закрывает окно
Вчера я объяснил реализацию реализации, но в фактической работе было обнаружено, что задержка должна быть добавлена, чтобы гарантировать, что программа может быть выполнена нормально. Детали реализации прикреплены ниже, и прикреплена простая функция задержки времени. Код был протестирован.
Код кода копирования следующим образом:
<script language = "javascript">
Функция window.onunload ()
{{
var newwindow;
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
newwindow = window.open ('Адрес программы выхода', «Имя веб -страницы»,
'ширина = 0, высота = 0, сверху = 4000, слева = 4000');
newWindow.opner = null;
Сон (5000);
newwindow.close (); // Новое окно закрыто
}
}
Функциональный сон (Milisecond)
{{
var CurrentDate, BEDINDATE = NEW DATE ();
Var Beginhour, Beginminute, начинается второй, Beginms;
Var Hourgaps, Minutegaps, Secondgaps, MSGAP, пробелы;
beginhour = begindate.gethouse ();
BEGINMINUTE = BEDINDATE.GETMINUTES ();
beginsecond = begindate.getSeconds ();
beginms = begindate.getmilliseconds ();
ДЕЛАТЬ
{{
CurrentDate = new Date ();
Hourgaps = currentDate.gethours () -beginhour;
MinuteGaps = currentDate.getMinutes () -BeginMinute;
SecondGaps = currentDate.getSeconds () -Beginsecond;
msgaps = currentDate.getMilliseconds () -Beginms;
if (Hourgaps <0) Hourgaps+= 24;
Пробелы = часовые капсы*3600+ Minutegaps*60+ Secondgaps;
Пробелы = пробелы*1000+msgaps;
} While (QUAPS <MILISECOND);
}
</script>
Во -вторых, когда окно загружается или выходит, если вы хотите обновить браузер, вы можете выполнить следующее:
<script type = "text/javascript" ranguage = "javascript">
Window.opent.document.location.reload ();
</script>
<boey только = "opener.location.reload ();"> Обновить при открытии окна
<body onunload = "opener.location.reload ();"> обновить