window.open新打开页面被拦截

拇指一代
  • 290

Screen Shot 2021-01-18 at 12.31.43 PM.png

    <a
        id="reservedsure"
        class="consultation"
        @click.prevent="reservedSubmit()"
      >确定<i/></a>
      >

使用window.open火狐被拦截,求解

回复
阅读 1.2k
2 个回答

浏览器安全机制会拦截非用户直接点击的新开页面
所以一般要请求后端后新开页面的地方都是 先开页面再赋值

cosnt win = window.open("")
// request...
http.then((url) => {
    win.location.href = url
})
// 部分浏览器在ajax中使用window.open会被拦截,导致无法打开新窗口
// 解决办法:提前打开空白窗口,在更改窗口地址。失败后关闭此窗口
// 封装:ns.openWindow(title, callback)
var newWindow = window.open() 
$.ajax({
  success: function () {
    newWindow.location = 'http://www.baidu.com'; // 改变窗口链接地址
  },
  error: function () {
    newWindow.close(); // 失败之后记得关闭
  }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏