window.open方法被浏览器拦截的处理方式
- 问题现象
当我们在一个 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 即可。
作者:阿晋Joseph
声明:本站博客均为原创,如有雷同请与我联系。原创不易,请在转载时保留原文链接或者在文章开头加上本人博客地址。如发现错误,欢迎批评指正。更多内容,请访问:https://haha.plus
声明:本站博客均为原创,如有雷同请与我联系。原创不易,请在转载时保留原文链接或者在文章开头加上本人博客地址。如发现错误,欢迎批评指正。更多内容,请访问:https://haha.plus