在网上也找了很多资料,创建a标签模拟用户点击操作还是会被拦截,我发现的问题就是 如果我点击后马上弹出新窗口是不会被拦截的 但是我们目前的需求是 打开之前会调用一个接口 等接口成功返回再打开新窗口 这种情况下就会被拦截 请问有什么好的方法解决吗?
在网上也找了很多资料,创建a标签模拟用户点击操作还是会被拦截,我发现的问题就是 如果我点击后马上弹出新窗口是不会被拦截的 但是我们目前的需求是 打开之前会调用一个接口 等接口成功返回再打开新窗口 这种情况下就会被拦截 请问有什么好的方法解决吗?
模拟a标签点击,接口拿到地址创建a标签添加到body中并用js点击销毁。
var a=document.createElement('a');
a.href='https://www.baidu.com'//要写绝对路径
a.target='_blank';
document.body.appendChild(a)
a.click();
拦截原因:JS脚本触发a链接或者form提交,都会被浏览器拦截,这是浏览器的安全防御机制,你还可以去把浏览器的设置里去允许无条件打开新窗口。
这个方法不会被拦截:你在接口请求成功后,先var openNewWindow = window.open("", "_blank");打开一个空的新页面,然后把你的url给这个新页面重定向openNewWindow.location.href = "###";
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
建议别搞黑科技,既然浏览器不希望你这样做,就意味着今天能成功的黑科技可能过一阵之后也不能用了。