指引网

当前位置: 主页 > 网页制作 > JavaScript >

window.parent与window.opener的区别

来源:网络 作者:佚名 点击: 时间:2017-08-07 22:17
[摘要] 有这样一个需求,弹出一个新窗口 并从该新页面的select选择框中选择需要的类别,再返回到之前的父窗口页面的某个文本框中。这里就要用到wi...
有这样一个需求,弹出一个新窗口 并从该新页面的select选择框中选择需要的类别,再返回到之前的父窗口页面的某个文本框中。这里就要用到window.parent和window.opener
如题两种方法都是javascript调用父窗口的方法。
1、window.parent是iframe页面调用父窗口对象
比如:parent.php
里面有一个文本框
 
复制代码 代码如下:
<input id="username" value=""> 
 
<iframe scrolling="auto" src="PLUGIN/CMS/children.php" 
id="rightFrame_id" frameborder="0" name="rightFrame"></iframe> 
当要在children.php里为parent.php页面中的username文本框赋值时,可在children.php里这样写:
 
复制代码 代码如下:
window.parent.document.getElementById("username").value = "hello"  
对应jquery版本为:
 
复制代码 代码如下:
$("#username",window.parent.document).val("hello");  
2、window.opener是window.open打开的子页面调用父页面对象
比如a.php
 
 
复制代码 代码如下:
<input  type="button" onclick="show();" value="测试" /> 
<input type="text" id="myhobby" value=""> 

function show(){ 
        window.open( "PLUGIN/CMS/shop/b.php", "ModifyAcce",'width=500,height=400,toolbar=no,status=no,location=no,scrollbars=yes,resizable=yes');  
    }  

想要在b.php里为a.php中的myhobby赋值,可以这样写:
 
复制代码 代码如下:
window.opener.document.getElementById("myhobby").value = "hello";  
对应jquery版本为:
 
复制代码 代码如下:
$("#myhobby",window.opener.document).val("hello");  
总结:
window.parent中的parent表示父窗口,比如一个A页面利用iframe或frame调用B页面,那么A页面就是B页面的parent。
B页面可以通过parent访问A页面。

window.opener中的opener表示谁打开我的,比如一个A页面利用window.open弹出了B页面,那么A页面就是B页面的opener。
B页面可以通过opener访问A页面。
------分隔线----------------------------