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

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

作者: 负势竞上 | 来源:发表于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