`

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="width:300;height:200;border-width: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











分享到:
评论

相关推荐

    JS window对象的top、parent、opener含义介绍

    其中,top、parent、opener是window对象的三个重要属性,它们在页面间导航和交互时扮演着重要角色。 首先,top属性指的是当前窗口的最高层窗口对象,也就是顶级窗口。当页面内嵌在frame或iframe中时,我们可以通过...

    再iframe中刷新列表

    - 当我们在弹出层C中需要触发父页面A中的列表刷新时,可以通过访问`window.parent.vm`或`window.top.vm`来获取之前绑定的数据模型,并调用其刷新方法。 ```javascript window.parent.vm.gridDataSource.filter({}...

    页面间DOM相互访问

    - 子页面访问父页面的DOM,则可以使用`parent`或`top`对象,因为它们分别指向当前iframe的父级框架和顶级窗口。在B.html中访问A.html的DOM,可以写为: ```javascript var parentDoc = parent.document || top....

    关于js中[removed].href,location.href,parent.location.href,top.location.href的用法与区别

    标题和描述中提到了JavaScript中的几个与页面跳转和刷新相关的属性,分别是window.location.href、location.href、parent.location.href以及top.location.href。这些属性在JavaScript编程中非常常用,用于控制页面的...

    JS刷新父页面 父窗口

    如果当前窗口是嵌套在框架或iframe中的,则`parent`指向包含它的父框架或窗口。 2. **安全性和限制**: - 当涉及到跨域请求时,由于同源策略的限制,不能直接访问其他域下的窗口对象。 - 在某些浏览器中,出于...

    js中刷新页面的方法

    - 如果涉及到多层嵌套的页面结构,则可以考虑使用 `parent.location.reload()` 或 `top.location.reload()` 来满足需求。 - 当需要刷新打开当前窗口的窗口时,则应选择 `opener.location.reload()`。 通过合理地...

    如何跳出frame框架

    1. **兼容性问题**:不同的浏览器对`window`, `top`, `parent`等对象的支持可能有所不同,在实际应用中需要注意测试和兼容。 2. **安全性和隐私**:直接操作`location.href`可能会引发一些安全问题,特别是当涉及到...

    js弹出窗口返回值

    - 注意:如果主窗口是在`&lt;iframe&gt;`中,则需要通过`window.opener.parent.document.frames["mainFrame"].location.reload();`来进行刷新。 3. **避免内存泄漏**: - 当关闭弹窗时,为了避免内存泄漏,可以设置`...

    js页面跳转的问题(跳转到父页面、最外层页面、本页面)

    这里的"parent"对象代表当前iframe的直接父级iframe或顶级页面的窗口对象。通过设置父页面的location.href属性,可以实现从子页面到父页面的跳转。 3. 最外层页面跳转:当页面是嵌套在多个iframe中时,最外层页面...

    被打开页面操作父页面上的控件

    - 如果子页面是在父页面的iframe中,那么`window.parent`可以用来引用父页面,而不是`window.opener`。使用`window.top`可以引用顶级窗口,无论当前页面嵌套多深。 10. **最佳实践**: - 鉴于安全性和性能,应...

    窗口 之间 的 通信

    2. `window.parent`和`window.top`: 如果一个窗口嵌套在其他窗口或框架中,可以使用`window.parent`访问父窗口,`window.top`访问顶级窗口。同样,这些方法也需要遵守同源策略。 三、Web存储 1. `localStorage`和`...

    跨域弹窗传值

    此外,如果父窗口和子窗口是嵌套关系(例如,子窗口在iframe中),可能还需要处理`window.parent`和`window.top`的关系,以确保消息能正确地传递到顶层窗口。 在你提供的压缩包文件`testOpen`中,可能包含了实现...

    js href的用法

    在这个话题中,我们将深入探讨`window.location.href`、`location.href`、`parent.location.href`和`top.location.href`的用法,以及它们如何影响页面的导航和刷新。 1. `window.location.href`与`location.href`:...

    js中window对象的属性1

    除此之外,`window`对象还有其他很多属性,如`window.top`(顶层窗口)、`window.parent`(当前窗口的父窗口,如果在框架中则不是`window.self`)、`window.status`(浏览器状态栏的文本)、`window.devicePixel...

    mvc常用的跳转

    当需要更新`iframe`中的内容时,可以通过调用`parent.location.reload()`来实现整个父页面的刷新,从而间接地刷新`iframe`内部的内容。 #### 2. 关闭弹出对话框并刷新页面 ```javascript $("#divEdit").dialog(...

    js刷新大全.docx

    - 对于框架页,可以使用`parent`或`top`关键字来刷新特定部分,如`parent.leftFrm.location.reload();`。 7. **JavaScript 定时器刷新**: - `setTimeout("location.href='url'", 2000)`:设置一个定时器,2000...

    最全的jquery-easyui扩展

    - 当需要在 iframe 内部操作父窗口时,可以使用 JavaScript 的 `parent` 或 `top` 对象。`parent` 用于访问直接父级的 window 对象,而 `top` 则用于访问最外层的窗口,即使它不是直接的父级。 8. **查找并操作 ...

    02._弹出窗口全解析

    - **sName**:指定新窗口的名称,可以是预定义的特殊值(如`'_blank'`, `'_parent'`, `'_self'`),也可以自定义一个字符串作为窗口的标识。 - **sFeatures**:一系列以逗号分隔的键值对,用于设置新窗口的属性,如...

Global site tag (gtag.js) - Google Analytics