js打开新窗口被拦的问题。

在网上也找了很多资料,创建a标签模拟用户点击操作还是会被拦截,我发现的问题就是 如果我点击后马上弹出新窗口是不会被拦截的 但是我们目前的需求是 打开之前会调用一个接口 等接口成功返回再打开新窗口 这种情况下就会被拦截 请问有什么好的方法解决吗?


拉风的咖菲猫
浏览 384回答 5
5回答

月关宝盒

建议别搞黑科技,既然浏览器不希望你这样做,就意味着今天能成功的黑科技可能过一阵之后也不能用了。

慕运维8079593

拦截原因:JS脚本触发a链接或者form提交,都会被浏览器拦截,这是浏览器的安全防御机制,你还可以去把浏览器的设置里去允许无条件打开新窗口。这个方法不会被拦截:你在接口请求成功后,先var openNewWindow = window.open("", "_blank");打开一个空的新页面,然后把你的url给这个新页面重定向openNewWindow.location.href = "###";

慕田峪9158850

还有一种方法:将ajax请求改成同步,请求返回后,用window.open(url)就可以了

慕尼黑8549860

可以先在页面上写一个a标签,然后动态去改变他的url,最后在用js去模拟点击事件,这样就可以了。(刚才试了一下,好像也被拦截了)

缥缈止盈

楼主找到答案了么,求支招。我也是想用JS自动点击超链接,然后打开一个新窗口,而不被拦截。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript