window.open() 新开页签被浏览器拦截

在 Vue 中使用 window.open(href.href, '_blank') 打开一个新窗口时,如果浏览器的弹出窗口阻止器(pop-up blocker)处于活动状态,可能会阻止弹出新窗口。这可能是由于浏览器的安全设置或用户的浏览器扩展程序造成的。

浏览器默认设置根据接口返回内容进行跳转的页面为垃圾页面进行阻拦

如果你需要根据请求接口后的结果进行页面跳转,你可以在接收到请求响应后,根据响应结果来决定页面的跳转逻辑。在 Vue 中,可以通过以下方式来处理:

先进行页面弹出后进行地址跳转就可以解决这个问题 代码如下:

const _window = window.open()
        var img = new Image(); //创建img标签
        img.style.verticalAlign = 'bottom'
        img.style.width = '30px'
        img.src = require('../../assets/animateloading.gif')
        _window.document.write(
          `<div style='position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);fontSize:16px;'>正在处理中,请稍候 ${img.outerHTML}</div>`
        )
// 这是对新开页签进行简单样式处理  也可以直接const _window = window.open()
_window.location.href = href.href  // href为跳转地址即可解决此问题

但有弊端  错误信息提示只能在原页面查看  此页面无法查看  根据结果返回后对href进行赋值跳转  可以解决被浏览器默认阻止弹框问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值