a.html
  <form name="form1" method="post" action="">
  <a href="javascript:void(null)" class="add" onClick="open('b.html','','resizable=1,scrollbars=1,status=no,toolbar=no,menu=no,width=500,height=400,left=150,top=50')">增加</a>
  <input type="text" name="text1">
  </form>
  b.html
  <script language="Javascript" type="text/javascript">
  function returnValue()
  {
  window.opener.document.all.text1.value=document.getElementById("returnText").value;
  window.close();
  }
  </script>
   <input type="button" name="Submit" value="提交" onclick="returnValue();">
   <input name="returnText" type="text" id="returnText">
  </p>
  补充:window.opener 的用法
  window.opener 的用法在一般的用法中,只是用来解决关闭窗口时不提示弹出窗口, 而对它更深层的了解一般比较少。其 实 window.opener是指调用window.open方法的窗口。
  在工作中主要是用来解决部分提交的。这种跨页操作对工作是非常有帮助的。
  如果你在主窗口打开了一个页面,并且希望主窗口刷新就用这个,打开页面的window.opener就相当于
  主窗口的window。
  主窗口的刷新你可以用
  window.opener.location.reload();
  如果你用虚拟的目录:如struts的*.do会提示你重试
  你可以改成这样 window.opener.yourformname.submit()
  就好了
  〉
  在应用中有这样一个情况,
  在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口
  function closeWin(){
  hasClosed = true;
  window.opener.location="javascript:reloadPage();";
  window.close();
  }
  function window.onbeforeunload(){
  if(!hasClosed){
  window.opener.location="javascript:reloadPage();";
  }
  }
  </script>
  上面的代码在关闭B窗口的时候会提示错误,说缺少Object,正确的代码如下:
  function closeWin(){
  hasClosed = true;
  window.opener.location="javascript:reloadPage();";
  window.opener=null;
  window.close();
  }
  function window.onbeforeunload(){
  if(!hasClosed){//如果已经执行了closeWin方法,则不执行本方法
  window.opener.location="javascript:reloadPage();";
  }
  }
  </script>
  reloadPage方法如下:
  function reloadPage() {
  history.go();
  document.execCommand("refresh")
  document.location = document.location;
  document.location.reload();
  }
  PS:由于需要支持正常关闭和强制关闭窗口时能捕捉到事件,用了全局变量hasClosed
  ==============================================
  补充,在父窗口是frame的时候在刷新父窗口的时候会出现问题:
  The page cannot be refreshed without resending the information.
  后修改如下:
  window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
  不需要执行自带的reload()方法,注意,不要再画蛇添足加上这一句:
  window.opener.parent.document.frames.item('mainFrame').location.reload();
  ========================================================================================
  最后,为了同时支持刷新普通父窗口和frame父窗口,代码如下:
  function closeWin() {
  hasClosed = true;
  <%if(null != frame){%>
  window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
  <%}else{%>
  window.opener.location = "javascript:reloadPage();";
  <%}%>
  //window.opener.top.mainFrame.location="javascript:reloadPage();";
  //self.opener.frames.mainFrame.location.reload(true);
  window.opener = null;
  window.close();
  }
  function window.onbeforeunload(){
  if (!hasClosed) {
  <%if(null != frame){%>
  window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
  <%}else{%>
  window.opener.location = "javascript:reloadPage();";
  <%}%>
  window.opener = null;
  }
  }
   window.opener 的用法
   window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一个链接而打开了b.htm,然后我们打算在b.htm上输入一个值然后赋予a.htm上的一个id为“name”的textbox中,就可以写为:
  
   window.opener.document.getElementById("name").value = "输入的数据";
  
  
   对于javascript中的window.opener没有很好的理解。
   为什么框架中不能使用,弹出窗口的父窗口不能在框架里面的某个页面呢?那怎样通过弹出窗口操作框架中的父窗口呢?
  
   opener.parent.frames['frameName'].document.all.input1.value 试试这个:)
  
  frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent
  window.opener引用的是window.open打开的页面的父页面。
  window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面.
  可以这样
  window.frames[].document.getElementById('xx');
  可以这样
  window.frames[].document.body.innerHTML;
  frm = window.parent.window.frames['uploadFrame'];
  frmDocument = frm.document;
  frm.sb(); //sb 是uploadFrame页面里的一个函数
  对于Firefox
  如果你遇到报错:parent.document.frames has no PRoperties
  换为如下代码就可以了,这个代码IE,ff兼容. frm = window.parent.window.frames['uploadFrame'];其实 frames 集合并不是挂在 document 而是挂在 window 对象下.
  注意这样修改frame里的页面有限制,就是必须是同域下的,否则无法访问
  如果是同一域下,但是子域名不同,那么涉及到的js,html文件都加上一句。
  document.domain = xxx.com [这里填写你的域名]
  document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
  问:
  在父窗口window.open()一个子窗口。并定义一个变量i。
  在子窗口输入一个值j然后window.opener.i=j;
  这样能传过去。但我在子窗口最后加了个window.close();就无法传值了。
  请问是否有办法解决这个问题。使我传递值之后再关闭子窗口。
  代码如下:
  父窗口:parent.jsp
  <script>
  var i;
  window.open('<%=contextPath%>/usermanage/newscontrol/cd.jsp);
  </script>
  <input type="button" onclick="alert(i)">
  子窗口:cd.jsp
  <script>
  function subm(){
  window.opener.i=;
  window.close();
  }
  </script>
  <input type="button" onclick="subm()">
  最佳答案
  你可以在父窗口放一个
  <input id="fromChild" type="hidden" />
  <input type="button"
  onclick="alert(document.getElementById('fromChild').value)">
  在子窗口中:
  function subm(){
  window.opener.document.getElementById('fromChild').value=;
  window.close();
  }
  这样既可
  <head>
  <script language=javascript>
  function windowclose()
  { window.opener=null;
  window.close();
  }
  </script>
  </head>
  <body>
  <input id="Button1" type="button" value="button" onclick="windowclose()" />
  </body>(王朝网络 wangchao.net.cn)

本示例是利用JS的showModalDialog方法弹出响应窗口

调用方法为

window.showModalDialog(url,window,"DialogHeight=180px;dialogWidth:370px;status:no;scrollbars:auto;Resizable=no;");

参数说明: 1.dialogHeight :对话框高度。 2.dialogWidth: 对话框宽度。 3.status: yes | no | 1 | 0   是否显示状态栏。 4.scrollbars : yes/no   窗口是否可有滚动栏 。 5.resizable:  yes | no | 1 | 0   是否可被改变大小。默认no。
为了防止弹出的新窗口不打开窗口,需要在弹出的窗口<head></head>之间加上 <base target="_self">  在弹出窗口中输入 ID 和Name,点确定后输入的值被传入到Default.aspx界面

为了防止弹出的新窗口不打开窗口,需要在弹出的窗口<head></head>之间加上 <base target="_self">  在弹出窗口中输入 ID 和Name,点确定后输入的值被传入到Default.aspx界面

弹出页面返回的是js数组,并调用 window.close()方法关闭弹出窗口

Response.Write("<script language=javascript>var arrArgs = new Array('"+ id +"','"+ name +"');window.returnValue=arrArgs;window.close();</script>");

完整的JS代码

 function OpenPage()
{
var url = "Default2.aspx";
var result=window.showModalDialog(url,window,
"DialogHeight=180px;dialogWidth:370px;status:no;scrollbars:auto;Resizable=no;");
if (result != null)
{
document.all.<%=txtID.ClientID%>.value = result[].toString();
document.all.<%=txtName.ClientID%>.value = result[].toString();
}
return false;
}

<script type="text/javascript" >
    function Pop()
    {      
        var result=showModalDialog('downs.aspx','subpage','dialogWidth:400px;dialogHeight:300px;center:yes;help:no;resizable:no;status:no'); //打开模态子窗体,并获取返回值
        document.getElementById("txt_id").value=result.split("|&|")[0]; //返回值分别赋值给相关文本框
        document.getElementById("txt_name").value=result.split("|&|")[1];
        document.getElementById("txt_pwd").value=result.split("|&|")[2];
    }
    </script>

本示例Demo下载/Files/steven_liu/OpenForm.rar

asp.net弹出窗口并返回值的更多相关文章

  1. asp .NET弹出窗口 汇总(精华,麒麟创想)

    asp .NET弹出窗口 汇总(精华,麒麟创想) 注://关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javas ...

  2. 获取layer.open弹出层的返回值

    正在开发的车联网项目用到了layer API.当我在开发“新建电子围栏”的时候需要弹出地图,用户在地图中画一个区域,最后将这个弹出层的数据返回给原页面.下面是我的实现过:程: 触发弹出层的代码: la ...

  3. PyQt5 笔记(03):弹出窗口大全

    本文实现了PyQt5个各种弹出窗口:输入框.消息框.文件对话框.颜色对话框.字体对话框.自定义对话框 其中,为了实现自定义对话框的返回值,使用了信号/槽 本文基于 windows 7 + python ...

  4. tkinter 弹出窗口 传值回到 主窗口

    有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置.有两种选择 一.标准窗口 如果只对一个参数进行设置(或者说从弹出窗口取回一个值),那么可以使用simpledialog,导入方法: from ...

  5. ExtJS前端框架EXT弹出窗口事件

    https://blog.csdn.net/alsyuan/article/details/73240841 Ext.MessageBox.alert()Ext.MessageBox.alert()提 ...

  6. Python tkinter模块弹出窗口及传值回到主窗口操作详解

    这篇文章主要介绍了Python tkinter模块弹出窗口及传值回到主窗口操作,结合实例形式分析了Python使用tkinter模块实现的弹出窗口及参数传递相关操作技巧,需要的朋友可以参考下 本文实例 ...

  7. asp.net弹出多个模态窗口

    asp.net中无限制弹出模态窗口 特点: 1.       可以在模态窗口上再弹出模态窗口,不限制次数 2.       弹出窗口的支持拖放,及调整大小 3.       弹出窗口关闭后可以动态控制 ...

  8. JSP弹出窗口和模式对话框

    本文转载于其它blog,在此向本文原创者,致意!    JSP 弹出窗口  一.window.open() 基础知识      1.window.open()支持环境:  JavaScript1.0+ ...

  9. [转]js来弹出窗口的详细说明

    1.警告对话框 <script> alert("警告文字") </script> 2.确认对话框 <script> confirm(" ...

随机推荐

  1. WPF dataGrid下的ComboBox的绑定

    WPF dataGrid下的ComboBox的绑定 Wpf中dataGrid中的某列是comboBox解决这个问题费了不少时间,不废话了直接上代码 xaml 代码 <DataGridTempla ...

  2. [dp]最长单调递增子序列LIS

    https://www.51nod.com/tutorial/course.html#!courseId=12 解题关键: 如果将子序列按照长度由短到长排列,将他们的最大元素放在一起,形成新序列$B\ ...

  3. 3、Linux下配置Java环境

    转载:http://blog.sina.com.cn/s/blog_c5a35e780102wtxl.html 生物信息很多软件都是用java写的,所以需要在linux上配置java运行环境.平台上的 ...

  4. Linux 启动顺序

    Linux 启动顺序:1. BIOS自检2. 运行系统内核并检测硬件3. 运行系统的第一个进程init4. init读取系统引导配置文件/etc/inittab中的信息进行初始化            ...

  5. lable对picbox透明

    为了登录美观一些,就在窗体上加了个picbox.并且充满了整个窗体. 往上面放了几个lable,把lable属性设置Transparent.本想着lable不会有底色,实际上有个底,很难看. 解决办法 ...

  6. datagrid 绑定选中数据,列头全选

    成品图: xaml代码 <Grid> <DataGrid x:Name="datagrid" Height="Auto" Width=&quo ...

  7. CODING 告诉你硅谷项目经理的项目管理之道(2)

    优秀的项目管理者是怎么工作的?如何帮助研发团队高效工作?这一直是 CODING 关注的重要话题,我们不断地打磨 CODING 研发管理系统来让开发更简单. 近期我们精心挑选了几篇硅谷科技公司研发管理者 ...

  8. 【原创】谈谈redis的热key问题如何解决

    引言 讲了几天的数据库系列的文章,大家一定看烦了,其实还没讲完...(以下省略一万字). 今天我们换换口味,来写redis方面的内容,谈谈热key问题如何解决. 其实热key问题说来也很简单,就是瞬间 ...

  9. sed命令使用

    创建模板文件 # cat >> example.txt <<"EOF" TeSt Test test EOF 测试过程中均不使用-i参数避免模板文件内容被修 ...

  10. Element-ui Cascader 级联选择器 同时返回 value 和 label

    给 cascader 组件赋值一个别名 ref="cascaderAddr" <el-form-item label="部门" prop="or ...