ajax让js打开新窗口不会被拦截

近日做了一个需求,在后台获取数据后,根据结果新开一个页面,新开页面很简单也就是一个函数和参数的事

但由于浏览器近来对非用户操作的新开窗口管控越来越严格,用window.open打开的窗口都会被拦截,需要用户主动设置不拦截才行

做不要拦截提示,让用户改设置?奈何中国这么多人,除了点点点和拼音打字外什么都不会的实在不少,给了提示也看不懂,懒人和大爷也特多,他就是不改能怎么办?所在公司不是阿里腾讯这种敢叫板用户的公司,还是要靠用户挣钱的,所以只能我当孙子,想办法

先是想到不能用open那就触发a标签,结果jq的trigger和click无效,原生触发click虽然有效但只要a标签加上target="_blank"就会被拦截,然后各种换方法,最后发现不管怎样,只要不是手动点击的,原窗口跳转可以,但打开新窗口就会被拦截

最后搜索得到一个结果:‘ajax要同步打开’,我试了试还真解决了,示例代码:

$.ajax({
	url:'后台地址',
	async: false,
	data:数据,
	method:'post',
	success:function (返回地址) {
		window.open(返回地址);
		}
});

猜你喜欢

转载自my.oschina.net/u/3470006/blog/1817171