Avant la fermeture de la fenêtre actuelle, vérifiez si la fenêtre actuelle est fermée
<pren name = "Code"> <pren name = "code"> <html> <éadfr> <script linguisse = "javascript"> window.onbeforeunload = function (event) {alert ("222"); // IE9 exécutera ici, Chrome n'exécutera pas // if (event.clientx> document.body.clientwidth && event.clienty <0 || event.altkey) {// s'il est actualisé, il n'invitera pas à renvoyer "Confirmer pour fermer la fenêtre?"; //}} var aa; var interalvar; fonction showClose () {console.log ("Wait and Val est:" + aa.closed); ClearInterval (IntercalVar); } fonction loadform () {aa = window.open ('foo.html', 'windowname', "width = 200, height = 200, scrollbars = no"); Console.log ("Vérifiez la fermeture avant OP et Val est:" + aa.closed); // La fenêtre n'est pas fermée maintenant, le résultat est false aa.close (); <span style = "blanc-espace: pre"> </span> // Appelant la méthode de la clôture de fenêtre console.log ("pas en attente et val est:" + aa.closed); //Aa.close est en cours d'appel, et le résultat est False Intercalvar = setInterval (ShowClose, 100); }; // Utilisez une boucle pour détecter si le sous-vent est fermé. En fait, il est acceptable d'utiliser SetTimeout, mais la valeur doit être définie une fonction plus grande un chargement () {alert ("2!"); } notreDans IE9, si le document est actualisé, le déchargement et OnBeforeunload seront exécutés. Si la page est fermée, seule OnBeforeunLoLoD sera exécutée.
Il convient de noter qu'OnUnload ne s'exécutera pas lors de la fermeture de la page. On estime que cette fonction est un événement intégré dans le navigateur et ne peut pas être redéfini.
Dans Chrome, si le document est rafraîchi, le déchargement et l'onBeforeunload seront exécutés. Si la page est fermée, seule OnBeforeunLoLoD sera exécutée. Il convient de noter que la ligne commentée ne sera pas exécutée.
S'il s'agit d'une fenêtre d'enfant ouverte par fenêtre.Open, vous pouvez utiliser la propriété fendue.Cosé pour vérifier s'il est fermé.
<html> <éad- head> <script linguisse = "javascript"> var aa; var interalvar; fonction showClose () {console.log ("Wait and Val est:" + aa.closed); ClearInterval (IntercalVar); } fonction loadform () {aa = window.open ('foo.html', 'windowname', "width = 200, height = 200, scrollbars = no"); Console.log ("Vérifiez la fermeture avant OP et Val est:" + aa.closed); // La fenêtre n'est pas fermée maintenant, le résultat est false aa.close (); // appelant la méthode de clôture de fenêtre Console.log ("pas en attente et val est:" + aa.closed); // À l'heure actuelle, AA.Close est en cours d'appel, le résultat est False Intercalvar = setInterval (ShowClose, 100); }; // Utilisez la boucle pour détecter si la fenêtre enfant est fermée, en fait, il est acceptable d'utiliser SetTimeout, mais la valeur doit être définie une fonction plus grande UNCOLODFORM () {alert ("2!"); } </ script> </ head> <body onload = "loadform ()" onunload = "unloadform ()"> <a href = "test.htm"> appelant </a> </ body> </html>Code qui ferme automatiquement Window.Open lorsque la fenêtre parent est fermée
<html> <éad- head> <script linguisse = "javascript"> var aa; var interalvar; window.onbeforeUnload = function (event) {aa.close (); retourner "bonjour"; } Fonction Loadform () {aa = window.open ('test.htm', 'windowname', "width = 200, height = 200, scrollbars = no"); }; fonction unloadform () {alert ("2!"); } </ script> </ head> <body onload = "loadform ()" onunload = "unloadform ()"> <a href = "test.htm"> appel </a> </ body> </html>