• top,parent,opener,iframe


    1.opener:指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。
    2.top:
    该变更永远指分割窗口最高层次的浏览器窗口。
    3.parent:
    该变量指的是包含当前分割窗口的父窗口。如果在一个窗口内有分割窗口,而在其中一个分割窗口中又包含着分割窗口,则第3层的分割窗口可以用parent变量引用第2层窗口,用top引用顶层窗口。
    对于窗体中的frame和iframe加载的页面元素来说。parent 返回的时包含该iframe的页面窗口引用,top则返回最上层的窗口引用,self当然返回的仍然是自身的引用。
    4. self,window都是获取当前页面窗口自身对象的引用

    使用document.getElementById("IframeA")取到的是iframe标签对象,通过该对象可以获取iframe的各个属性,例如src、frameborder、style等,但是不能获取到iframe所包含的子页面的各个对象。;

    使用document.frames("IframeA")取到的是iframe组件对象,通过该对象可以获取到iframe所包含的页面的子页面的各个对象,例如子页面的window对象,但是不能获得iframe标签得各个属性,例如上面说到的src等

    1.html
    <script>
    function check(){
        var obj1=document.getElementById("myframe");
        alert(obj1.src);
        //alert(obj1.window.document.myform.username.value);//Error
        var obj2=document.frames("myframe");
        alert(obj2.window.document.myform.username.value);
        //alert(obj2.src);//Error
    }
    </script>
    <body onload="check()">
    <iframe id="myframe" name="myframe" src="2.html" frameborder="3" style="300;height:200;border-1;border-color:red;border-style:solid"></iframe>
    </body>
    2.html
    <body>
    <form name="myform">
        用户名:<input type="text" name="username" value="test" />
    </form>
    </body>



    附: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';



    window.parent与window.opener的区别 javascript调用主窗口方法

    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

    主页面子页面窗口函数调用.rar (2.8 KB)

  • 相关阅读:
    从dump看硬件问题
    Pycharm----【Mac】设置默认模板
    python----装饰器(几种常见方式的使用与理解)
    【Mac】打开配置文件,添加/修改环境变量
    Airtest---UI自动化测试项目
    python----PySnooper获取打印日志
    学习类网站
    unittest----assert断言的使用
    Mac---使用tree生成目录结构
    python request 留位置7
  • 原文地址:https://www.cnblogs.com/superfeeling/p/2176435.html
Copyright © 2020-2023  润新知