JS/JQUERY(6)——JS中window对象的top,parent,opener含义

1.top
  该变更永远指分割窗口最高层次的浏览器窗口。如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。

  /**
   * 打开新的子页面
   */
  var url = "./LoadAssetCard.jsp";
openWindow(strjsp);
  /**
   * 子页面返回父页面,并将value返回父页面的 afterQuery()方法中
   */
  var value = "内容";
  top.opener.afterQuery(value);
  top.close();
2.opener   opener用于在window.open的页面引用执行该window.open方法的的页面的对象。例如:A页面通过window.open()方   法弹出了B页面,在B页面中就可以通过opener来引用A页面,这样就可以通过这个对象来对A页面进行操作。

  /**
  * 跳转的新的页面
  */
window.opener.location.href="./AssetCardAddInput.jsp?type=Normal&loadAssetCard="+value;

   window.opener.location.reload() 与 window.opener.location.href=window.opener.location.href 都是弹出窗口关闭时用来刷新父窗口。

   但window.location.Reload 如果有数据提交的动作,会提示是否提交的(是和否选项)

   window.opener.location.href=window.opener.location.href 是定向url提交数据,则不会出现是和否的选择框。

   注意: window.opener.location.href 只是一个链接,如果想实现父窗口的提交就要调用window.opener.action ="" 和window.opener.submit();方法,但是不幸的是这段代码        在firefox下不能运行,解决的办法为在父窗口中写一个提交的 function在子窗口中通过window.opener.functionname()调用。

 
  

     通常在使用window.opener的时候要去判断父窗口的状态,如果父窗口被关闭或者更新,就会出错,解决办法是加上如下的验证if(window.opener && !window.opener.closed)

3.parent

  parent用于在iframe,frame中生成的子页面中访问父页面的对象。例如:A页面中有一个iframe或frame,那么iframe
  或frame中的页面就可以通过parent对象来引用A页面中的对象。这样就可以获取或返回值到A页面中。


/**
  * 通过子页面返回父页面,afterSubmit()为父页面中的一个方法;
  */

  <html>
  <script language="javascript">
    parent.fraInterface.afterSubmit("<%=FlagStr%>","<%=Content%>");
  </script>
  </html>

4.另外self 指的是当前窗口

  parent与opener的区别

  parent指父窗口,在FRAMESET中,FRAME的PARENT就是FRAMESET窗口。

  opener指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。
  parent是相对于框架来说父窗口对象
  opener是针对于用window.open打开的窗口来说的父窗口,前提是window.open打开的才有

  document.parentWindow.menthod()調用父頁面的方法

附:Window对象、Parent对象、Frame对象、Document对象和Form对象的阶层关系
Window对象→Parent对象→Frame对象→Document对象→Form对象,
如下: parent.frame1.document.forms[0].elements[0].value;

 

转载于:https://www.cnblogs.com/xushuyi/articles/4394441.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值