Javascript 检查窗口是否关闭

Javascript 检查窗口是否关闭,javascript,browser,Javascript,Browser,如果未打开窗口,则无法关闭浏览器窗口。更多关于这方面的信息在这里 我想检查关闭选项是否可用或有效。我想对较旧的浏览器使用此选项。我不想检查浏览器版本,但使用更聪明的条件。我想要的行为是: 如果此事件可用,请运行并关闭窗口 如果不可用,则显示消息并隐藏按钮 我想在加载页面后检查一下 我该怎么做?检查window.opener if(window.opener !== null) //it was opened by JS, so you can close it 您不必检查窗口是否由Java

如果未打开窗口,则无法关闭浏览器窗口。更多关于这方面的信息在这里

我想检查关闭选项是否可用或有效。我想对较旧的浏览器使用此选项。我不想检查浏览器版本,但使用更聪明的条件。我想要的行为是:

  • 如果此事件可用,请运行并关闭窗口

  • 如果不可用,则显示消息并隐藏按钮

我想在加载页面后检查一下


我该怎么做?

检查window.opener

if(window.opener !== null) //it was opened by JS, so you can close it

您不必检查窗口是否由Javascript打开。根据我的经验,浏览器在试图关闭窗口时从不出错。所以写下这样的话:

window.close(); 
// If it worked, the next statement will never execute.
// Else,
setTimeout(function() {
    alert("Please close the window!");
}, 1);
此处
setTimeout
确保在
警报
语句之前执行
窗口.close


当然,您可以将
window.close()
包装成一个
try…catch
,以避免将来浏览器决定对此抛出异常时出现问题。

您可以调用window.close()来关闭窗口。我们可以使用
window.closed
检查窗口是否关闭

我做了测试。警报将在浏览器关闭之前执行。对,我还没有测试过。原来您必须等待
窗口。关闭
才能执行。我已经更新了我的答案。