有这样一个需求,弹出一个新窗口 并从该新页面的select选择框中选择需要的类别,再返回到之前的父窗口页面的某个文本框中。这里就要用到window.parent和window.opener
如题两种方法都是javascript调用父窗口的方法。
当要在children.php里为parent.php页面中的username文本框赋值时,可在children.php里这样写: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> 复制代码 代码如下:
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页面。 |