2019独角兽企业重金招聘Python工程师标准>>>
近日做了一个需求,在后台获取数据后,根据结果新开一个页面,新开页面很简单也就是一个函数和参数的事
但由于浏览器近来对非用户操作的新开窗口管控越来越严格,用window.open打开的窗口都会被拦截,需要用户主动设置不拦截才行
做不要拦截提示,让用户改设置?奈何中国这么多人,除了点点点和拼音打字外什么都不会的实在不少,给了提示也看不懂,懒人和大爷也特多,他就是不改能怎么办?所在公司不是阿里腾讯这种敢叫板用户的公司,还是要靠用户挣钱的,所以只能我当孙子,想办法
先是想到不能用open那就触发a标签,结果jq的trigger和click无效,原生触发click虽然有效但只要a标签加上target="_blank"就会被拦截,然后各种换方法,最后发现不管怎样,只要不是手动点击的,原窗口跳转可以,但打开新窗口就会被拦截
最后搜索得到一个结果:‘ajax要同步打开’,我试了试还真解决了,示例代码:
$.ajax({url:'后台地址',async: false,data:数据,method:'post',success:function (返回地址) {window.open(返回地址);}
});