Ajax新开窗口window.open()是拦截方案的请求后,成功
开发项目时遇到一个问题。Ajax异步请求成功后,需要一个新的打开窗口来打开URL。window.open()方法,但不幸的是,它是由浏览器拦截。我们怎样才能解决这个问题
分析uff1a
新的浏览器拦截窗口是因为操作不是用户主动触发,所以认为拦截是不安全的(但如果_self就没有这个限制),即使点击仿真实施或提交用户行为Ajax回调函数(触发(听到咔哒声)),浏览器将不积极由用户触发,它可以安全地执行因此受阻。
uff1a解
1、异步变化同步,即异步:假
2,将新打开的窗口作为对象点,然后修改对象的URL,例如:
$(任务)。Bind(听到咔哒声,函数()){
无功W = window.open();
$ ajax({
类型:'post,
网址: / surveytask,
DataType:'json,
错误:函数(){
W.close();
},
成功:函数(RES){
w.location = res.url;
}
});
});
最后,需要解释的是:在Internet上动态添加新的开放窗口并不适合Ajax请求。至少博客测试仍然被浏览器阻止。