Copier le code du code comme suit:
// Function Window.OnunLoad () {alert («C'est ce que vous voulez faire, faites-le après la fermeture de la page Web!»);
// Function Window.onbeForeunLoad () {alert ("C'est ce que vous voulez faire, faites-le avant de fermer la page Web!")}
function window.onunload () {
If (window.screenleft> = 10000 && window.screentop> = 10000) || event.altkey) {
alert (window.screenleft + "," + window.screentop);
// Action qui doit être déclenchée lorsque l'utilisateur doit être fermé normalement
location = 'handler1.ashx';
}
}
</cript>
Handler1.ashx:
Copier le code du code comme suit:
Utilisation du système;
Utilisation de System.Collections.Gneric;
Utilisation de System.Linq;
Utilisation de System.Web;
Utilisation de System.Web.Services;
Utilisation de System.Web.SessionState;
namespace webapplication1
{{
/// <résumé>
/// $ CodeBehindClassName $ Description Résumé
/// </summary>
[WebService (namespace = "http://tempuri.org/")]
[WebServiceBinding (conformsto = wsiprofiles.basicProfile1_1)]]
Handler de classe publique1: ihttphandler, irequiresssionstate
{{
Public void processRequest (contexte httpcontext)
{{
context.Response.contentType = "Text / Plain";
context.Session.abandon ();
context.Session.Clear ();
}
Bool public isreusable
{{
obtenir
{{
Retourne false;
}
}
}
}
expliquer:
Le formulaire de membre général d'un membre établira une session ou un cookie après la connexion du membre, puis vous devez quitter la connexion ou quitter le nouveau nouveau nouveau nouveau nouveau. Lorsque les membres ferment directement la fenêtre, une série de sortie impliquant la sortie n'a pas déclenché. Et ceux-ci seront effacés jusqu'à l'expiration de la session du serveur.
Heureusement, j'ai finalement trouvé le moyen de capturer les utilisateurs à l'aide d'ALT + F4, de la barre de titre, de la droite -clic, de la double barre de titre et d'appuyez directement sur le bouton de clôture. Bien sûr, il ne peut pas être capturé pour la minimisation de la barre des tâches.
Copier le code du code comme suit:
<script linguisse = "javascript">
<! -
function window.onunload () {
if (window.screenleft> = 10000 && window.screentop> = 10000) || event.altkey)
{{
// Action qui doit être déclenchée lorsque l'utilisateur doit être fermé normalement
}
}
->
</cript>
illustrer:
Window.Screenlect = 10000 + largeur de bordure (2 × 2) = 10004
Window.screntop = 10000 + barre d'outils HIGH + barre de titre HIGH = 10097
Il faut expliquer que ces propriétés de coordonnées dans l'écran dans OnBeforeunload sont des valeurs normales.
Screenleft: Obtenez la coordonnée X du coin supérieur gauche de la zone du client du navigateur par rapport au coin supérieur gauche de l'écran.
ScreenTop: Obtenez la coordonnée Y du coin supérieur gauche de la zone du client du navigateur par rapport au coin supérieur gauche de l'écran.
Je suppose qu'une valeur spéciale sera générée lorsque la fenêtre sera détruite. Dans des circonstances normales, la valeur ne dépassera pas la valeur.
Le problème est maintenant que l'utilisation de Window.Location dans OnBeforeunLoad peut normalement soumettre la demande à l'URL spécifiée, mais la méthode ne peut pas être exécutée efficacement dans l'événement OnUnload. La solution consiste à ouvrir une nouvelle fenêtre pour la fermer.
Nous pouvons écrire de tels mots au lieu d'une série de Window.Location. Parce que les sites Web de portail impliquent plusieurs serveurs de sites Web croisés. Après avoir quitté l'entrée unifiée, vous devez quitter afin d'atteindre l'effet attendu du portail.
var Newwindow;
Window.opner = null;
NewWindow = window.open (url, pagename, 'height = 0, width = 0');
newwindow.opner = null;
newwindow.close ();
Nympho
Ce segment du code a été testé. OnBeforeUnload est un événement que la page sera déclenchée avant la désinstallation.
La suppression SO-appelée est essentiellement les pages qui font la fonction de sortie directement en ouvrant la nouvelle fenêtre. Il peut être interrompu pendant une ou deux secondes lorsqu'il est appelé, ou a fermé la fenêtre sur une page de sortie spéciale. La page sort normalement et revient à la page d'accueil.
[Remarque] Si vous ne jugez pas dans Window.onUnload, vous déclencherez l'événement si vous ne jugez pas la page d'actualisation. Par conséquent, il est nécessaire de juger et de capturer des opérations spécifiques pour bloquer certaines opérations normales.
Continu: comment effacer la session avant que l'utilisateur ne ferme directement la fenêtre
Hier, j'ai expliqué la mise en œuvre de la mise en œuvre, mais en fonctionnement réel, il a été constaté que le retard doit être ajouté pour garantir que le programme peut être exécuté normalement. Les détails de l'implémentation sont joints ci-dessous et une fonction de retard simple est jointe. Le code a été testé.
Copier le code du code comme suit:
<script linguisse = "javascript">
Fonction Window.onUnload ()
{{
var Newwindow;
if (window.screenleft> = 10000 && window.screentop> = 10000) || event.altkey)
{{
newwindow = window.open ('quitter l'adresse du programme' ', «nom de page Web»,
'largeur = 0, hauteur = 0, top = 4000, gauche = 4000');
newwindow.opner = null;
Sommeil (5000);
newwindow.close ();
}
}
Sleep de la fonction (Miliseconde)
{{
var currentDate, Begindate = new Date ();
Var Beginhour, Beginminute, Beginsecond, Beginms;
Var hourgaps, minutegaps, seconds, msgaps, lacunes;
Beginhour = Begindate.Gethouse ();
BeginMinute = Begindate.getMinutes ();
BegindeConD = Begindate.getSeconds ();
beginms = Begindate.getMilliseConds ();
FAIRE
{{
CurrentDate = new Date ();
hougaps = currentDate.Gethours () -BeginHour;
MINDITGAPS = CurrentDate.getMinutes () -BeginMinute;
secondgaps = currentDate.getSeconds () -BinginSecond;
msgaps = currentDate.getMilliseconds () -Beginms;
si (hourgaps <0) hourgaps + = 24;
GAPS = HourGaps * 3600 + MinuteGaps * 60 + Secondgaps;
GAPS = GAPS * 1000 + msgaps;
} While (gaps <miseconde);
}
</cript>
Deuxièmement, lorsque la fenêtre est chargée ou sortie, si vous souhaitez actualiser le navigateur, vous pouvez faire fonctionner ce qui suit:
<script type = "text / javascript" linguistique = "javascript">
Window.opent.Document.Location.reload ();
</cript>
<Boey Only = "Opender.Location.reload ();"> Rafraîchissez-vous lors de l'ouverture de la fenêtre
<Body onunload = "Opender.Location.reload ();"> Rafraîchissement