美文网首页
window.open方法被浏览器拦截的处理方式

window.open方法被浏览器拦截的处理方式

作者: 阿晋Joseph | 来源:发表于2018-10-20 09:07 被阅读25次
    • 问题现象

      当我们在一个 ajax 回调中执行 window.open 方法时,新页面会被浏览器拦截。

    • 原因

      在 Chrome 的安全机制里,非用户直接触发的 window.open 方法,是会被拦截的

    • 处理

    $('#jump-btn').on('click', function () {
      // 打开一个空标签页(此处不会被拦截)
      var newTarget = window.open();
      $.ajax({
        data: data,
        success: function (url) {
          // 修改新窗口的 url
          newTarget.location.href = url;
        }
      })
     });
    

      总之,在用户交互时首先打开一个空标签页,随后在回调函数中更改 href 即可。

    相关文章

      网友评论

          本文标题:window.open方法被浏览器拦截的处理方式

          本文链接:https://www.haomeiwen.com/subject/zxupzftx.html