首先来看看 window.showModalDialog 的参数

  1. vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures]) ;

sURL : 打开窗口的地址;

vArguments : 传递参数;

sFeatures : 窗口属性列表;

第一个参数是必须的, 后两个可以省略.

这里我们要利用的就是第二个参数. 原理是将父窗口的被控制对象以参数的形式传递到子窗口, 在子窗口中直接控制这个对象即可.

举例来说:

parent.html

<script type="text/javascript">

function openWin(){
// 子窗口地址 var srcFile = "child.html"; // 子窗口属性 var winFeatures = "dialogHeight:300px; dialogLeft:200px;"; // 将 From 的 ID 作为参数传递到子窗口 var obj = getForm; // 打开子窗口 window.showModalDialog(srcFile, obj, winFeatures); } </script> <form id="getForm"> 回传值:
<input id="getValue" type="text" />
</form>
<input onclick="openWin()" type="button" value="打开" />

 

child.html


<script type="text/javascript"><!--
function send(){ // 获取参数传递的对象 var obj = window.dialogArguments;
// 控制对象 obj.getValue.value = 'from Child';
} // --></script> <a onclick="send();" href="#">Send</a>

 

运行 parent.html , 单击 [打开] 按钮弹出对话框, 点击 Send 链接将值传递到 parent 的文本框中.

 

传递的参数当然也可以是其他对象, 例如 window . 值得注意的是传递的是对象, 而不是字符串.

 

 

window.showModalDialog 打开的子窗口,不支持 window.opener 属性 



获取父窗口,需要显示作为参数传入 





// a.aspx 

window.showModalDialog("b.aspx", window); 





// b.aspx 

var theOpener = window.dialogArguments; 

theOpener.close(); 



// 对于内嵌 c.aspx -> 

var outerOpener = window.top.dialogArguments; 

outerOpener.close();

window.showModalDialog与opener及returnValue的更多相关文章

  1. window.open || window.showModalDialog || window.showModelessDialog

    http://dwcmayday201204063551.iteye.com/blog/1621751 http://www.cnblogs.com/zhangyi85/archive/2009/09 ...

  2. window.open、window.showModalDialog和window.showModelessDialog 的区别[转]

    一.前言 要打开一个可以载入页面的子窗口有三种方法,分别是window.open.window.showModalDialog和window.showModelessDialog. open方法就是打 ...

  3. window.parent与window.opener、window.showModalDialog的区别 opener和showModalDialog刷新父页面的方法

    项目中使用案例: 父窗体 <s:form namespace="/forexagent" id="listSearchForm" name="t ...

  4. 父窗口window.showModalDialog传值 子窗口window.returnValue返回值

    父窗口打开子窗口页面: var fatherWindow = document.all.dealReason;//想传的值 win = window.showModalDialog(strUrl, f ...

  5. window.showModalDialog的简单实践

    Super.jsp - 父窗口 <%@ page language="java" import="java.util.*" pageEncoding=&q ...

  6. window.showModalDialog返回值和window.open返回值实例详解

    最近在谷歌浏览器下发现一个问题,就是使用谷歌浏览器已经不兼容window.showModalDialog了,所以还是改成使用window.open(). 一.window.showModalDialo ...

  7. window.showModalDialog 与window.open传递参数的不同?

    简单的说,就是一个在弹出窗口之后可以做其它的事,即window.open 另一个在弹出窗口之后不能做其它的事,只能是关闭了当前的窗口之后才能做其它的事,即window.showModalDialog ...

  8. JS中window.showModalDialog()详解 HTML DOM open() 方法

    window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框. window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框.  ...

  9. IE 中创建 子窗口 传值 与接收值 【window.showModalDialog】

    父窗口 创建一个窗口 var backinfo = window.showModalDialog('UserSelect.aspx', '', 'dialogHeight=600px; dialogW ...

  10. 解决window.showModalDialog在Firefox无法支持

    在网页程序中,有时我们会希望使用者按下按钮后开启一个保持在原窗口前方的子窗口,而在IE中,我们可以使用showModalDialog来达成,语法如下 : vReturnValue = window.s ...

随机推荐

  1. TP5发送短信限制

    <?php //发送手机验证码 function smsCode() { //dump($this->request->post()); //请求方式验证 /*if (!$this- ...

  2. 错误:tensorflow.python.framework.errors_impl.InvalidArgumentError: ValueError: attempt to get argmax of an empty sequence的解决方案

    近日,在使用Cascade R-CNN完成目标检测任务时,我在使用这个模型训练自己的数据集时出现了如下错误: 具体如以下截图所示: 详细错误如下所示: Traceback (most recent c ...

  3. DbgridEh 1900-01-01 00:00:00 问题解决

    --------------------------------------------------

  4. clickhouse导入和导出

    一.连接clickhouse--客户端连接default库clickhouse-client -h localhost --port 9001 -u default --password 123456 ...

  5. 从零开始的react入门教程(三),了解react事件与使用注意项

    壹 ❀ 引 在从零开始的react入门教程(二),从react组件说到props/state的联系与区别一文中,我们介绍了react组件的基本用法以及props与state的区别.其中react组件分 ...

  6. Python三次样条插值与MATLAB三次样条插值简单案例

    1 三次样条插值 早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,成为样条曲线. 设函数S(x)∈C2[a,b] ,且在每个小区间[x ...

  7. 探秘SuperCLUE-Safety:为中文大模型打造的多轮对抗安全新框架

    探秘SuperCLUE-Safety:为中文大模型打造的多轮对抗安全新框架 进入2023年以来,ChatGPT的成功带动了国内大模型的快速发展,从通用大模型.垂直领域大模型到Agent智能体等多领域的 ...

  8. Java操作EasyExcel实现导入导出入门

    介绍 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单.节省内存著称.EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从 ...

  9. django时区相关说明

    # naive time 从字面意思上理解,这是个"幼稚的时间",所以可以理解为它是个本地时间,不带时区信息,不能直接用于存储,如下 import datetime datetim ...

  10. 【LeetCode剑指offer 02】矩阵中的路径(老鼠走迷宫plus,应用深度优先搜索与回溯机制)

    矩阵中的路径 https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/ 给定一个 m x n 二维字符网格 board 和一个字符串单词 ...