使用js方法关闭当前页面

一直以来,浏览器window对象提供了一个close方法,用于关闭页面。出于安全考虑,浏览器页面直接执行window.close()时不会生效,会在控制台会出现警告。为了解决浏览器这个处于安全考虑的限制,可以使用以下代码解决。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function closePage() {
let ua = window.navigator.userAgent;
ua = ua.toLocaleUpperCase()
if (ua.indexOf('MSIE') > 0) {
// ie 浏览器, ie 11版本没有MSIE字段,需要使用Trident去判断
if (ua.indexOf('MSIE 6.0') > 0) {
// // ie 6.0 浏览器
window.opener = null;
window.close();
} else {
window.open('', '_top');
window.top.close();
}
} else {
window.opener = null;
window.open('', '_self', '');
window.close();
}
}

顺便将目前常用浏览器userAgent值记录以下

浏览器 版本号 userAgent值
Chrome Chrome/86.0.4240.198 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Firefox Firefox/82.0.3 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
Opera OPR/72.0.3815.320 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 OPR/72.0.3815.320
IE IE11 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
Microsoft Edge Edg/86.0.622.68 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36 Edg/86.0.622.68

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!