top,parent,opener,iframe

来源:互联网 发布:免费字体软件下载 编辑:程序博客网 时间:2024/05/18 01:21
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
原创粉丝点击