如何在关闭打开的窗口时运行Javascript代码?

时间:2018-08-24 06:20:20

标签: javascript

当我关闭打开的窗口时,我想做些什么(比如,只需在控制台上打印hello world)。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible"
         content="IE=edge">
        <title>window</title>
        <meta name="viewport" 
        content="width=device-width, initial-scale=1">
    </head>
    <body>
        <button onclick="openwindow()">Show Window</button>


        <script>
            function openwindow(){
                window.open("https://www.google.com",'newwindow',
                'scrollbars=no,menubar=no,height=600,width=800,
                resizable=yes,toolbar=no,status=no');
            }
        </script>
    </body>
</html>

如您所见,我有一个按钮。当我单击此按钮时,它将打开另一个窗口并在其中打开Google

因此,当我关闭此新窗口时,我想运行一些代码而不打开其他对话框。我该如何实现?

2 个答案:

答案 0 :(得分:4)

弹出窗口没有任何可监听的关闭事件,但是当窗口关闭时,有一个关闭属性true。您可以借助启动计时器并每秒检查子窗口的关闭属性来检测该事件,并在关闭窗口时清除计时器。像这样:

var windowPopup = window.open("https://www.google.com",'newwindow',
                'scrollbars=no,menubar=no,height=600,width=800'); 
var timer = setInterval(function() { 
    if(windowPopup.closed) {
        clearInterval(timer);
        alert('closed');
    }
}, 1000);

答案 1 :(得分:0)


我不知道我是否正确地理解了您,但是我认为您可以轻松使用'onbeforeunload()'事件。

<body onbeforeunload="myFunction()">
</body>

function myFunction() {
    localStorage.setItem("dataSet", 'dataSet');
}


您可以检查webStorage以查看其在关闭页面之前是否已写入变量。
有帮助吗?