Antes da janela atual ser fechada, verifique se a janela atual está fechada
<pré -nome = "code"> <pre name = "code"> <html> <head> <script idioma = "javascript"> window.onbeforeunload = function (event) {alert ("222"); // O IE9 será executado aqui, o Chrome não executará // se (event.clientx> document.body.clientWidth && Event.clienty <0 || event.altkey) {// Se for atualizado, ele não solicitará retornar "confirmar a fechamento da janela?"; //}} var aa; var intervalvar; função showClose () {console.log ("Wait e Val é:"+aa.closed); ClearInterval (intervalvar); } function loadForm () {aa = window.open ('foo.html', 'windwowname', "largura = 200, altura = 200, scrollbars = não"); console.log ("Verifique se feche antes da OP e Val:"+AA.CLOSED); // A janela não está fechada agora, o resultado é falso aa.close (); <span style = "space branco: pré"> </span> // chamando o método de console de fechamento de janelas ("não espera e val é:"+aa.closed); //Aa.close está em processo de chamada e o resultado é falso intervalvar = setInterval (ShowClose, 100); }; // Use um loop para detectar se a subwindow está fechada. De fato, não há problema em usar o setTimeout, mas o valor deve ser definido maior função UNLOLLOVERForm () {alert ("2!"); } </script> </ad Head> <corpo onload = "loadForm ()" onUnload = "UNLOLLOFFORM ()"> </body> </html>No IE9, se o documento estiver atualizado, a forma de descarga e o número de carga será executada. Se a página estiver fechada, somente o número de carga será executado.
Vale a pena notar que o OnUnload não será executado ao fechar a página. Estima-se que essa função seja um evento interno no navegador e não possa ser redefinido.
No Chrome, se o documento for atualizado, a forma de descarga e o OnBeReunload será executada. Se a página estiver fechada, somente o número de carga será executado. Vale a pena notar que a linha comentada não será executada.
Se for uma janela infantil aberta por janela.
<html> <head> <script linguage = "javascript"> var aa; var intervalvar; função showClose () {console.log ("Wait e Val é:"+aa.closed); ClearInterval (intervalvar); } function loadForm () {aa = window.open ('foo.html', 'windwowname', "largura = 200, altura = 200, scrollbars = não"); console.log ("Verifique se feche antes da OP e Val:"+AA.CLOSED); // A janela não está fechada agora, o resultado é falso aa.close (); // chamando o método de console de fechamento de janelas ("Não está em espera e Val é:"+aa.closed); // Nesse momento, aa.close está em processo de chamada, o resultado é falso intervalvar = setInterval (ShowClose, 100); }; // Use Loop para detectar se a janela da criança está fechada, de fato, não há problema em usar o setTimeout, mas o valor deve ser definido como uma função maior UNLOLOUNFFORM () {alert ("2!"); } </script> </ad Head> <corpo onload = "loadForm ()" OnUnload = "UNLOLLOFFORM ()"> <a href = "test.htm"> CHAMANHO </A> </cody> </html>Código que fecha automaticamente a janela.
<html> <head> <script linguage = "javascript"> var aa; var intervalvar; window.onBeforeUnLoad = function (event) {aa.close (); retornar "Olá"; } function loadForm () {aa = window.open ('test.htm', 'windwowname', "largura = 200, altura = 200, scrollbars = não"); }; function uplarloadForm () {alert ("2!"); } </script> </head> <corpo onload = "loadForm ()" onunload = "UNLOLLOFFORM ()"> <a href = "test.htm"> ligue </a> </body> </html>