window.open()方法打开新标签页窗口,往往每点击一次就会打开一个窗口。在实际项目中,有时候会遇到始终打开一个新标签页窗口,这就需要做一些其他的代码处理。
1、原生Html页面
window.open('新页面地址'); // 打开新页面
// 以下代码控制始终打开一个新窗口
if (navigator.userAgent.indexOf('MSIE') > 0) { // close IE
if (navigator.userAgent.indexOf('MSIE 6.0') > 0) {
window.opener = null;
window.close();
} else {
window.open('', '_top');
window.top.close();
}
} else { // close chrome;It is effective when it is only one.
window.opener = null;
window.open('', '_self');
window.close();
}
2、vue页面
data () {
return {
// 页面标识
num: 1,
}
},
methods: {
gotoNewPage(){
const { href } = this.$router.resolve({
path: '要跳转的路由页面路径',
});
try{
this['pageNum' + this.num] = window.open(href, '_blank');
if(this.num === 1){
this.num = 2;
}else{
this.num = 1;
}
this['pageNum'+(this.num)].close();
}catch (e) {
//
}
}
}
以上方法代码仅供参考,如有想法可留言探讨。