js窗体间传值

转载 2015年11月19日 09:38:36
Javascript 两个窗体之间传值实现代码
javascript中还有一个函数window.showModalDialog也可以打开一个新窗体,不过他打开的是一个模态窗口,那么如何在父窗体和子窗体之间传值呢?我们先看该函数的定义:vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
参数说明:
sURL--必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments--可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures--可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth: 对话框宽度。
dialogLeft: 离屏幕左的距离。
dialogTop: 离屏幕上的距离。
center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
如:"dialogWidth=200px;dialogHeight=100px"
因此我们可以通过window.dialogArguments参数来在两个窗体之间传值
如下面两个页面:FatherPage.htm:
复制代码 代码如下:

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

ChildPage.htm:
复制代码 代码如下:

<body onload="Load()">
<script type="text/javascript">
function Load()
{
document.getElementById('txtInput').value=window.dialogArguments ;
}
</script>
<input type="text" id="txtInput" />
</body>

上面只是传递简单的字符串,我们还可以传递数组,如:FatherPage.htm:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
function OpenChildWindow()
{
var args = new Array();
args[0] = document.getElementById('txtInput').value;
window.showModalDialog('ChildPage.htm',args);
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />ChildPage.htm:
XML-Code:
<script type="text/javascript">
function Load()
{
document.getElementById('txtInput').value=window.dialogArguments[0] ;
}
</script>

同样我们还可以传递对象,如:FatherPage.htm:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
function OpenChildWindow()
{
var obj = new Object();
obj.name = document.getElementById('txtInput').value;
window.showModalDialog('ChildPage.htm',obj);
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />

ChildPage.html:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
function Load()
{
var obj = window.dialogArguments;
document.getElementById('txtInput').value=obj.name ;
}
</script>

以上都是从父窗体向子窗体传值,那么如何从子窗体向父窗体传值呢 ?其实通过window.returnValue就可以获取子窗体的值,window.returnValue与window.dialogArguments一样,可以是任意变量,包括字符串,数组,对象等。如:FatherPage.html:
XML-Code:
复制代码 代码如下:

<script type="text/javascript">
function OpenChildWindow()
{
var obj = new Object();
obj.name = document.getElementById('txtInput').value;
var result = window.showModalDialog('ChildPage.htm',obj);
document.getElementById('txtInput').value = result.name;
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />

ChildPage.html:
XML-Code:
复制代码 代码如下:

<body onload="Load()">
<script type="text/javascript">
function Load()
{
var obj = window.dialogArguments;
document.getElementById('txtInput').value=obj.name ;
}
function SetValue()
{
var obj = new Object();
obj.name = document.getElementById('txtInput').value;
window.returnValue = obj;
window.close();
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="SetFather" onclick="SetValue()" />
</body>

js窗体间传值

A页面传值给 B页面页面A page A function newWin() { var obj = new Object(); ...
  • hanjun0612
  • hanjun0612
  • 2015年09月30日 14:06
  • 1171

【C#】窗体间互相传值

网上关于C#之间的窗体之间互相传值其实很坑的。主要有修改要被传递数值的窗体的构造函数,然而这种方法,如果你要做打开一个窗体,然后这个窗体输入完东西之后传递回去,根本就是不知道怎么实现。之后还有什么委托...
  • yongh701
  • yongh701
  • 2015年12月03日 17:33
  • 2486

C#的Winform窗体之间的传值

本人做Winform比较少,所以关于Winform窗体间的传值方式知道的也就这么几种。 1.通过构造函数进行传值。 实现代码如下: 在窗体Form2中 int value1; ...
  • a631464421
  • a631464421
  • 2015年03月26日 21:04
  • 4699

C# 利用委托实现窗体间传值

图文详解C#窗体间传递数据 ——窗口1若干TextBox中的数据,传递到窗口2中的ListView 功能描述:主窗体有一ListView控件和一“添加”Button控件。点击“添加”But...
  • jiliqiang1986
  • jiliqiang1986
  • 2017年03月06日 12:08
  • 2483

C# 窗体间传值 + 获得数据库单元的数据

Form1.cs中: using System;using System.Collections.Generic;using System.ComponentModel;using System.Da...
  • abcjennifer
  • abcjennifer
  • 2010年05月01日 08:56
  • 1917

delphi窗体之间的相互传值

效果图如下所示 Form1代码 //定义一个用户信息类 type   TUsersInfo=class     //声明三个全局变量     public        User...
  • wang463584281
  • wang463584281
  • 2014年03月22日 18:17
  • 1014

利用事件进行窗体间传值

举例,现在有两个窗体,SelectForm窗体查询信息集合,使用DataGridview显示信息集合,EditForm窗体添加和修改信息,EditForm编辑完成并且关闭后,定位SelectForm的...
  • chaoyangzhixue
  • chaoyangzhixue
  • 2013年12月06日 11:11
  • 3971

用委托进行窗体之间回传值

来自:http://blog.csdn.net/mypc2010/article/details/9229791 有这样两个窗体,一个是MainForm,一个是Form2.当我点击M...
  • ArvinStudy
  • ArvinStudy
  • 2013年07月05日 09:49
  • 846

C#利用委托和事件在窗体间传值问题

用静态变量和静态方法也可是现实在窗体间相互传值,但是有时候那些变量和方法未必能弄成静态的。 所以窗体间传递数值莫过于使用委托和事件了。 现有两个窗体form1,form2,它们都有分别有一个tex...
  • happythomas
  • happythomas
  • 2014年06月18日 14:30
  • 996

Visual Studio 中两个窗体(WinForm)之间相互传值的方法

编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单。以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返...
  • rockyzee
  • rockyzee
  • 2014年03月18日 19:26
  • 2422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js窗体间传值
举报原因:
原因补充:

(最多只允许输入30个字)