zoukankan      html  css  js  c++  java
  • JS的parent、opener、self对象

    转自http://blog.csdn.net/minsenwu/article/details/7455135

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

    parent:
    该变量指的是包含当前分割窗口的父窗口。如果在一个窗口内有分割窗口,而在其中一个分割窗口中又包含着分割窗口,则第2层的分割窗口可以用parent变量引用包含它的父分割窗口。
    opener:
    用WINDOW.OPEN等方式创建的新窗口对应的原窗口
     
    附:Window对象、Parent对象、Frame对象、Document对象和Form对象的阶层关系:Windwo对象→Parent对象→Frame对象→Document对象→Form对象
    如下:parent.frame1.document.forms[0].elements[0].value;
     
     
    问题:在一个页面嵌入框架<iframe>,然后在框架中使用jvascript脚本:parent.xx.value='xxxxx'; 在IE中可以正常看到赋值,但是在firefox中则不能完成赋值。请问在firefox中调用父框架的对象应该是哪个,是否和IE兼容?
    解答:window.parent.document.form名.xx.value='xxxxx';   window可省略。
    parent.document.form名.xx.value='xxxxx';   parent.document.getElementById("xx").value='xxxxx'; 
     
     
    1:   window.parent 是iframe页面调用父页面对象
    举例:      a.html
    <html>
    <head><title>父页面</title></head>
    <body>
    <form name="form1" id="form1">
    <input type="text" name="username" id="username"/>
    </form>
    <iframe src="b.html" width=100%></iframe>
    </body>
    </html>
    如果我们需要在b.htm中要对a.htm中的username文本框赋值(就如很多上传功能,上传功能页在Ifrmae中,上传成功后把上传后的路径放入父页面的文本框中),我们应该在b.html中写:
    <script type="text/javascript">
    var _parentWin = window.parent ;
    _parentWin.form1.username.value = "xxxx";
    </script>
    2:   window.opener 是window.open 打开的子页面调用父页面对象
    opener:对打开当前窗口的window对象的引用,如果当前窗口被用户打开,则它的值为null。
    self:自引用属性,是对当前window对象的应用,与window属性同义。
    self代表自身窗口,opener代表打开自身的那个窗口,比如窗口A打开窗口B。如果靠window.open方法,则对于窗口B,self代表B自己,而opener代表窗口A。
  • 相关阅读:
    Maven(二)Maven项目的创建(命令、myeclipse)及生命周期
    Maven(一)初识Maven
    MySQL(十一)之触发器
    MySQL(十)之视图
    MySQL(九)之数据表的查询详解(SELECT语法)二
    MySQL(九)之数据表的查询详解(SELECT语法)一
    关于oracle的锁表解决session marked for kill
    shell脚本清空redis库缓存
    Java 数组拷贝方法 System.arraycopy
    oracle 替换字符 replace
  • 原文地址:https://www.cnblogs.com/taidi/p/4650458.html
Copyright © 2011-2022 走看看