当我们在一个 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 即可。
如对本文有疑问, 点击进行留言回复!!
JavaScript 好题汇总分享(持续更新,看到好题就写)
XMLHttpRequest 2级 &&进度事件&&JSONP
使用递归原生实现拷贝&&最简单的方法实现深拷贝
网友评论