如题
出于安全考虑,普通页面直接执行window.close()
时不会生效,控制台会出现如下警告:
Scripts may not close windows that were not opened by script.
只有那些通过<a target="_blank">链接</a>
或者window.open()
打开的页面才支持关闭,为什么这么规定呢?我猜大概可能是觉得,直接输入地址访问的页面可能比较重要,减少被恶意JS攻击的可能性吧,所以规定只有用脚本(或代码)打开的页面才能用脚本关闭。
当然,规定是死的,人是活的,也不是没有办法,网上找的一段代码,IE和火狐还未亲测,Chrome已确定没问题。
// 关闭页面
closeCurrentPage() {
const ua = window.navigator.userAgent;
if (ua.indexOf('MSIE') > 0) {
if (ua.indexOf('MSIE 6.0') > 0) {
window.opener = null;
window.close();
} else {
window.open('', '_top');
window.top.close();
}
} else {
window.opener = null;
window.open('', '_self', '');
window.close();
}
}