浅析opener和window的关系

    (在《Javascript Bible》6th中讲到)一个页面看作一组相关联的对象集合,window对象是顶层的对象,所有的其他对象都可以直接或间接地被window引用。也就是说,在页面中所有的内容,都被包含在window对象中,那么通过Javascript脚本,可以操控页面中的所有内容了。

    一个页面,可以打开另外一个页面,前者被称为主窗口(打开者),后者叫副窗口。比如主窗口页面是main.html,副窗口页面是new.html。
    var newWindow = window.open("new.html", "", "width=400,height=300");

    ◆主副窗口如何互访呢?
    答案在于opener对象。opener对象其实指向了主窗口window对象,这样就可以访问主窗口的所有对象了。
    (main.html)主访问副:newWindow.document.getElementById("new_id"); // newWindow代表了副窗口
    (new.html)副访问主:opener.document.getElementById("main_id"); // opener代表了主窗口,也即打开者

    ◆主窗口等待副窗口关闭,并刷新主窗口。
    以下代码写入main.html中
var newWindow;
var timer;

function openWindow(url) {
 newWindow = window.open(url, "", "width=400,height=300,resizable=yes");
 timer = setInterval("updateAfterClose()", 1000);
}

function updateAfterClose() {
 if(newWindow.closed == true) {
  clearInterval(timer);
  self.location.reload(); // 主窗口刷新
  return;
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值