当我关闭打开的窗口时,我想做些什么(比如,只需在控制台上打印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。
因此,当我关闭此新窗口时,我想运行一些代码而不打开其他对话框。我该如何实现?
答案 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以查看其在关闭页面之前是否已写入变量。
有帮助吗?