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

2018-11-12 06:50:08来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

  • 问题现象

    当我们在一个 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 即可。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:移动端自适应

下一篇:初识模块化开发工具: