最近需要实现一个小功能,父页面弹出窗口里加载不同域的子页面,操作结束之后关闭弹出窗口并刷新父页面,首先想到的实现方式:
- window.parent.opener.loaction.reload();
- window.parent.close();
经测试发现window.parent.opener.location取不到对象,无法执行reload()
修改为:
- try{
- window.parent.opener.location.reload();
- window.parent.close();
- }catch(e){
- window.parent.opener.location = "父页面地址";
- window.parent.opener = null;
- window.parent.close();
- }
服务器跨域的时候,两个页面不在同一个服务器,子页面无法获取到父页面的location,所以我们需要手动设置父页面,这样也能达到刷新父页面的效果