在 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进行赋值跳转 可以解决被浏览器默认阻止弹框问题