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