代码改变世界

javascript 父窗体获取子窗体操作结果

2011-07-08 18:31  jiejiep  阅读(695)  评论(0编辑  收藏  举报

   在父窗体 A.html 页面中,当点击某个按钮时,使用 window.open("B.html","anyName"); 来打开 B.html 页面。
   在 B.html 页面中进行相应的操作后,如何将操作结果返回给 A.html 页面呢,现在,让我们来做进一步的分析。
   首先,我们要知道,使用 window.open 方法打开页面 B.html 页面时,允许我们在 B.html 页面中调用 window.opener
   方法来获取父窗体对象,然后通过该对象调用父窗体 A.html 页面的 js 方法来设置 A.html 页面的控件或标签值。

 如:
 
 A.html 页面的部分代码如下:
 

<table class="select" onclick="window.open("B.html","new1")" >
<tr>
<td>
<div id="TagName">
</div>
</td>
<td class="w20">
<input type="hidden" id="TagID" /><img src="../resources/images/default/common/tag.gif"
alt
="选择标签" />
</td>
</tr>
</table>
<script type="text/javascript">

function setLabelType(idlist,namelist)
{
var tagids = document.getElementById("TagID");
tagids.value
= idlist;
var tagnames = document.getElementById("TagName");
tagnames.innerHTML
= idlist + namelist;
}

</script>


 B.html 页面的部分代码如下:
 

<script type="text/javascript">
function setValues()
{
var ids = "my ids";
var names = "my names";
window.opener.setLabelType( ids, names);
window.close();
}
</script>


 其实这里唯一要注意的就是:子页面可以通过获取父页面来调用父页面的方法。