javascrpt 代码
一、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(){
var w = 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;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步