Copiar código del código de la siguiente manera:
// Función Window.Onunload () {Alert ('Esto es lo que desea hacer, hágalo después de cerrar la página web!');
// función window.onbeforeunload () {alerta ('Esto es lo que quieres hacer, hazlo antes de cerrar la página web! ")}
función window.onunload () {
If (window.screenleft> = 10000 && window.screentop> = 10000) ||
alerta (window.screenleft+","+window.screentop);
// Acción que debe activarse cuando el usuario debe cerrarse normalmente
ubicación = 'handler1.ashx';
}
}
</script>
Handler1.ashx:
Copiar código del código de la siguiente manera:
usando el sistema;
usando System.Collections.gneric;
usando System.Linq;
usando System.web;
usando System.Web.Services;
usando System.Web.SessionState;
espacio para la aplicación del espacio de nombres1
{{
/// <summary>
/// $ CodeBeHindClassName $ Resumen Descripción
/// </summary>
[WebService (Namespace = "http://tempuri.org/")]]
[WebServiceBinding (conformsto = wsiprofiles.basicprofile1_1)]
Handler de clase pública1: Ihttphandler, IrequiressessionState
{{
Public void ProcessRequest (contexto httpContext)
{{
context.Response.ContentType = "Text/Plain";
context.session.abandon ();
context.session.clear ();
}
Público bool isreusable
{{
conseguir
{{
Devolver falso;
}
}
}
}
explicar:
El formulario de miembro general de un miembro establecerá una sesión o cookie después de que el miembro inicie sesión, y luego debe salir de la conexión o salir al nuevo nuevo nuevo nuevo nuevo. Cuando los miembros cierran directamente la ventana, una serie de salida que involucra la salida no se activó. Y estos se borrarán hasta que expire la sesión del servidor.
Afortunadamente, finalmente encontré la forma de capturar a los usuarios con Alt+F4, la barra de título, hacer clic con el derecha, hacer doble clic en la barra de título y presionar el botón de cierre directamente. Por supuesto, no se puede capturar para la minimización de la barra de tareas.
Copiar código del código de la siguiente manera:
<script language = "javaScript">
<!-
función window.onunload () {
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
// Acción que debe activarse cuando el usuario debe cerrarse normalmente
}
}
->
</script>
ilustrar:
Window.screenlect = 10000 + Ancho de borde (2 × 2) = 10004
Window.Screntop = 10000 + Barra de herramientas High + Title Bar High = 10097
Debe explicarse que estas propiedades de coordenadas en la pantalla en OnBeforeNloadLoad son valores normales.
ScreenLeft: obtenga la coordenada X de la esquina superior izquierda del área del cliente del navegador en relación con la esquina superior izquierda de la pantalla.
Screentop: obtenga la coordenada y de la esquina superior izquierda del área del cliente del navegador en comparación con la esquina superior izquierda de la pantalla.
Supongo que se generará un valor especial cuando se destruya la ventana. En circunstancias normales, el valor no excederá el valor.
El problema ahora es que usar Window.Location en OnBeforeNunload puede enviar normalmente la solicitud a la URL especificada, pero el método no puede ejecutarse de manera efectiva en el evento OnUnload. La solución es abrir una nueva ventana para cerrarla.
Podemos escribir tales palabras en lugar de una serie de ventanas. Porque los sitios web del portal involucran múltiples servidores de sitios web de servidor cruzado. Después de salir de la entrada unificada, debe salir para lograr el efecto esperado del portal.
var NewWindow;
Window.opner = nulo;
newWindow = Window.open (URL, PageName, 'Height = 0, Width = 0');
newWindow.opner = null;
newWindow.close ();
Ninfo
Este segmento del código ha sido probado. OnboreNunload es un evento en el que la página se activará antes de la desinstalación.
La eliminación de SO son esencialmente las páginas que hacen que la salida funcione directamente al abrir la nueva ventana. Se puede detener durante uno o dos segundos cuando se llama, o cerrar la ventana en una página de salida especial. La página sale normalmente y recorta la página de inicio.
[Nota] Si no juzga en Window.onunload, activará el evento si no juzga la página de actualización. Por lo tanto, es necesario juzgar y capturar operaciones específicas para bloquear algunas operaciones normales.
Continuo: cómo borrar la sesión antes de que el usuario cierre la ventana directamente
Ayer, expliqué la implementación de la implementación, pero en la operación real, se descubrió que el retraso debe agregarse para garantizar que el programa se pueda ejecutar normalmente. Los detalles de implementación se adjuntan a continuación y se adjunta una función de retraso de tiempo simple. El código ha sido probado.
Copiar código del código de la siguiente manera:
<script language = "javaScript">
Window.onunload ()
{{
var NewWindow;
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
newWindow = Window.open ('Dirección del programa de salida', 'Nombre de la página web',
'ancho = 0, altura = 0, superior = 4000, izquierda = 4000');
newWindow.opner = null;
Dormir (5000);
newWindow.close ();
}
}
Function Sleep (milisegundo)
{{
var currentDate, beginDate = new Date ();
Var beginhour, beginminute, comienza, comienzo;
VAR HORAGAPS, MINUNGAPS, SECUNDGAPS, MSGAPS, GAPS;
beginhour = begindate.gethouse ();
beginMinute = beginDate.getMinutes ();
beginsecond = beginDate.getSeconds ();
beginms = beginDate.getMilliseConds ();
HACER
{{
CurrentDate = new Date ();
HoraGaps = CurrentDate.Gethours () -Beginhour;
MinuteGaps = CurrentDate.getMinutes () -BeginMinute;
SecondGaps = CurrentDate.getSeconds () -BeginSecond;
msgaps = currentDate.getMilliseConds () -beginms;
if (horagaps <0) horagaps+= 24;
GAPS = HoraGaps*3600+ MinuteGaps*60+ SecondGaps;
GAPS = GAPS*1000+MSGAPS;
} While (brechas <miliseCond);
}
</script>
En segundo lugar, cuando la ventana está cargada o salida, si desea actualizar el navegador, puede operar lo siguiente:
<script type = "text/javaScript" lenguaje = "javaScript">
Window.opent.document.location.reload ();
</script>
<boey solo = "abierro.location.reload ();"> Actualizar al abrir la ventana
<Body OnUnload = "Opener.location.Reload ();"> Actualizar