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。
  • 相关阅读:
    iOS开发之Socket
    IOS开发之Bug--使用KVC的易错情况
    IOS开发之功能模块--给任意的UIView添加点击事件
    IOS开发之开发者账号遇到的bug
    iOS开发--关于TableViewCell的可视化设置细节
    学习Coding-iOS开源项目日志(四)
    Learn how to Use UIPageViewController in iOS
    关于Storyboard的使用
    学习Coding-iOS开源项目日志(三)
    学习Coding-iOS开源项目日志(二)
  • 原文地址:https://www.cnblogs.com/taidi/p/4650458.html
Copyright © 2011-2022 走看看