js脚本打开方式浏览器窗口
关闭方式:
window.close()
非js脚本打开方式浏览器页面
只是前端开发者会惊奇的发现,使用window.close() API,并不能每次成功关闭浏览器窗口,打开控制台发现会有一条警告信息
错误分析:
为什么浏览器要限制 close()?
在我们去深入了解哪些因素会制约 close()
方法之前,我们先要明白为什么需要对它有限制。
有时候这种限制会被含糊地解释为 “安全问题“,但核心其实是简单的 “用户体验“ 问题 - 如果一个标签页或者窗口被突然的关掉,用户可能会丢失一些浏览器中一些重要的状态值或者 “前进/后退” 历史记录栈(在 IE 中,我们称之为 TravelLog)。用户可能使用标签页在浏览一系列的搜索记录(搜索一下-打开,回退到搜索结果页面,再打开另一个,类似这种操作),如果某个搜索结果页面可以直接干掉自己和前面的搜索结果页,用户会非常苦恼。
也有一个 反滥用/安全
观点,如果一个浏览器页签可以随便关闭自己,对于一些恐吓软件或一些用户体验滥用(软件)来说,这个规则可能很有用。
下面是 HTML 标准部分 dom-window-close 说到:
一个浏览上下文可以用脚本关闭,有两种情况:
- 这是一个由脚本打开的(区别于用户自己打开) 辅助浏览上下文
- 这是一个顶层浏览上下文,检索历史记录只有一个 document
解决方案:
if (navigator.userAgent.indexOf('Firefox') != -1 || navigator.userAgent.indexOf('Chrome')!= -1) {
window.location.href = 'about:blank'
window.close()
} else {
window.opener = null
window.open('', '_self')
window.close()
}
标签:浏览器,浏览,解决方案,用户,js,window,搜索,close
From: https://blog.csdn.net/m0_56416159/article/details/142964083