一、window.open关闭子页面时刷新父页面
window.opener.location.reload();
window.opener=null;window.close();
二、AJAX返回后window.open不被阻挡
1.可以把异步变同步async: false
2.异步下处理方法
var newwindow=window.open("about:blank");
window.focus();
$.ajax({
url:form.attr('action'),
data:form.serialize(),
dataType: 'json',
}).done(function(o){
if(o.success){
if(o.data){
newwindow.location.href="http://www.zgxrw.com";
newwindow.focus();
}else{
newwindow.close();
}
}else{
newwindow.close();
}
}).fail(function(){newwindow.close();});
但是这种方法带来一个问题,就是当失败后,会先打开一个窗口,然后再关闭,虽然一闪而过,但是对用户总是一个困扰,相对来说还不如将ajax改成同步,毕竟现在的互联网的访问速度,不至于会将浏览器锁住太长时间。
或者
方法1:
<input type="button" class="preview" value="预览"/>
$('.preview').live('click', function(){
varw=window.open();//发请求之前打开一个空页面
$.ajax({..., success:function(msg){
setTimeout(function(){w.location='http://www.baidu.com';}, 0);//0秒后给新窗口的localtion赋值
}});
});
方法2:
<input type="button" value="预览" onclick="if(preview()){window.open('http://www.baidu.com');}"/>
function preview(){
var bol=false;
$.ajax({async:false,...,success:function(msg){
if (msg == 1) {
bol=true;
} else {
bol=false;
}
}});
return bol;
}