window.open()和window.close()两个页面之间数据传递

在旧页面中用window.open()打开一个新页面,在新页面进行操作之后用window.close()关闭新页面,这个时候怎么在旧页面监测到新页面的关闭,并且接受新页面数据刷新旧页面??

阅读 4.2k
5 个回答
var win = window.open('')
win.document.write('hello')
win.onunload = function() {
  location.reload()
}

子窗口的window.opener可以获得父窗口的window
父窗口的open的返回结构是子窗口的window。

打开的页面执行

var win = window.open('....');
win.close();
window.location.reload();

被打开的页面的话执行

//交换顺序是为了脚本能执行。先关闭后面的脚本不会执行
window.opener.location.reload();
window.close();

window.opener可以获取原来页面的window对象

window.opener.location.reload(); //子窗口刷新父窗口

在父窗口的window中定义好变量以及更新显示的方法,然后在子窗口中通过window.opener获取父窗口,修改需要更新的值,在关闭子窗口前 通过方法更新旧窗口的显示,最后window.close()关闭子窗口 (因为重新刷新的话,你传递过去的值就米有了,除非你存到cookie或者localStorage)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题