JS的parent、opener、self对象

top
该变更永远指分割窗口最高层次的浏览器窗口如果计划从分割窗口的最高层次开始执行命令,就可以用 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'; 
 
 
window.parentwindow.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

你可能感兴趣的:(JavaScript,js,职场,self,opener,休闲,parent)