当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Javascript 两个窗体之间传值实现代码

Javascript
JS幻想 读取二进制文件
javascript 层展开/关闭,带缓冲效果
仿淘宝首页分类列表效果实现代码
javascript 像素拼图实现代码
javascript+css 新闻显示tab 选项卡效果
[转]去百度面试的javascript 收获
用JavaScript显示随机图像或引用
一个类似vbscript的round函数的javascript函数
JavaScript 学习点滴记录
Js 获取HTML DOM节点元素的方法小结
在线编辑器中换行与内容自动提取
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
javascript 绘制矩形框
纯JS 绘制数学函数
javascript Excel操作知识点
jQuery 注意事项 与原因分析
JQuery 初体验(建议学习jquery)
RGB颜色值转HTML十六进制(HEX)代码的JS函数
JavaScript 使用技巧精萃(.net html
js tab 选项卡

Javascript 两个窗体之间传值实现代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-10   浏览: 260 ::
收藏到网摘: n/a

众所周知window.open() 函数可以用来打开一个新窗口,那么如何在子窗体中向父窗体传值呢,其实通过window.opener即可获取父窗体的引用。 如我们新建窗体FatherPage.htm:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
function OpenChildWindow()
{
window.open('ChildPage.htm');
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />

然后在ChildPage.htm中即可通过window.opener来访问父窗体中的元素:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
function SetValue()
{
window.opener.document.getElementById('txtInput').value
=document.getElementById('txtInput').value;
window.close();
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="SetFather" onclick="SetValue()" />

其实在打开子窗体的同时,我们也可以对子窗体的元素进行赋值,因为window.open函数同样会返回一个子窗体的引用,因此FatherPage.htm可以修改为:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
function OpenChildWindow()
{
var child = window.open('ChildPage.htm');
child.document.getElementById('txtInput').value
=document.getElementById('txtInput').value;
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />

通过判断子窗体的引用是否为空,我们还可以控制使其只能打开一个子窗体:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
var child
function OpenChildWindow()
{
if(!child)
child = window.open('ChildPage.htm');
child.document.getElementById('txtInput').value
=document.getElementById('txtInput').value;
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />

光这样还不够,当关闭子窗体时还必须对父窗体的child变量进行清空,否则打开子窗体后再关闭就无法再重新打开了:
XML-Code:
复制代码 代码如下:

<body onunload="Unload()">
<script type="text/javascript">
function SetValue()
{
window.opener.document.getElementById('txtInput').value
=document.getElementById('txtInput').value;
window.close();
}
function Unload()
{
window.opener.child=null;
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="SetFather" onclick="SetValue()" />
</body>