榆林网站建设推广/公司产品推广方案
window.open('url', '_blank'),blank属性可以在新标签打开
window.open 直接调用可能会有拦截提示,在用户交互事件时调用不会出现拦截
由window.open 打开的新的标签页或弹窗可以由window.close关闭
window.open会返回一个 WindowProxy 对象。只要符合同源策略安全要求,返回的引用就可用于访问新窗口的属性和方法
比如在当前页面关闭已打开的窗口
const WindowProxy = window.open(url,'_blank')
WindowProxy.close()
也可以在新打开的页面关闭当前页
window.close()
如果用户点击触发异步事件,等异步事件完成后再打开新的弹窗,可能会因为等待时间过长导致出现弹窗拦截,这种情况可以新打开一个空白页面或者自定义一个等待页面,等异步完成后更新
data(){return {openWin: ''}
}
function openPage(){// 打开一个空白窗口或者等待页面并存储引用this.openWin = window.open('about:blank', '_blank');// 进行异步请求fetch('你的异步请求URL').then(response => response.json()) // 假设服务器返回的是JSON数据.then(data => {// 异步请求完成,获取所需的URLvar url = data.url; // 假设返回的数据中包含一个名为"url"的字段// 填充新打开窗口的URLthis.openWin.location.href = url;})
}
funntion closePage(){this.openWin.close()
}<div @click="openPage">点击跳转</div>
<div @click="closePage">关闭标签页</div>