首页 > web前端 > js教程 > 正文

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

DDD
发布: 2023-12-06 14:15:30
原创
1807 人浏览过

关闭打开的窗口的方法: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中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板