PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

window.open如何关闭打开的窗口

DDD
DDD 原创
2023-12-06 14:15:30 200浏览

关闭打开的窗口的方法:1、使用“window.close”关闭新窗口;2、使用“window.location”重定向;3、使用“window.blur”和“window.focus”;4、使用“window.history”回退;5、使用“window.opener”。

window.open 是 JavaScript 中用于打开新窗口或新选项卡的函数。然而,由于浏览器的安全限制,你不能直接从新窗口或选项卡返回到原始窗口或选项卡,也不能直接关闭新窗口或选项卡。这是为了防止恶意脚本在用户不知情的情况下关闭窗口或选项卡。

然而,你可以通过一些方法间接地关闭新窗口或选项卡。以下是几种可能的方法:

1. 使用 window.close 关闭新窗口

虽然你不能直接关闭由 window.open 打开的新窗口,但你可以在新窗口中调用 window.close 函数来关闭它。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.close();

请注意,只有由 window.open 打开的窗口才能被关闭。浏览器通常不允许脚本关闭非脚本打开的窗口。此外,浏览器可能会阻止脚本关闭包含 window.close 的窗口,除非这个脚本是在窗口的沙盒环境中运行的,或者窗口是通过 window.open 打开的。

2. 使用 window.location 重定向

你可以通过在新窗口的地址栏中输入新的 URL 来重定向到新的页面,从而间接地关闭新窗口。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.location = 'https://www.example2.com';

在这个例子中,新窗口会被重定向到新的 URL,从而间接地关闭了原来的窗口。请注意,这种方法可能会给用户带来不良体验,因为它会改变浏览器的焦点。

3. 使用 window.blur 和 window.focus

你可以尝试让新窗口失去焦点,然后再重新获得焦点,这可能会关闭它。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.blur();  // 失去焦点  
setTimeout(function() {  
    window.focus();  // 重新获得焦点  
}, 0);

这种方法可能并不总是有效,因为浏览器的实现可能会有所不同。此外,这种方法可能会给用户带来不良体验,因为它会改变浏览器的焦点。

4. 使用 window.history 回退

你可以尝试使用 window.history 对象的 back() 方法来回退到上一个历史记录条目。这可能会关闭新窗口或选项卡。例如:

window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
window.history.back();

请注意,这种方法可能会给用户带来不良体验,因为它会改变浏览器的历史记录。此外,这种方法可能并不总是有效,因为浏览器的实现可能会有所不同。

5. 使用 window.opener

如果你是在新窗口中打开的,那么你可以使用 window.opener 属性来访问原始窗口。然后你可以在原始窗口中调用 window.close() 来关闭新窗口。例如:

在原始窗口中:

var newWindow = window.open('https://www.example.com', '_blank');  
// 在新窗口中...  
newWindow.close();  // 关闭新窗口

请注意,这种方法可能会给用户带来不良体验,因为它需要用户手动关闭新窗口。此外,由于浏览器的安全限制,这种方法可能并不总是有效。

以上就是window.open如何关闭打开的窗口的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。