开发中经常遇到这样的问题:需要在一个页面里打开另外的页面(模态,或者非模态)。

见过很多这样的例子,另外还有页面间需要传递参数的,大部分都是采用地址栏参数拼接的形式。这很显然是一个不好的编程习惯,每次需要增加参数的时候都要面对那段可恶的参数拼接,经常出错。特别是最后一个参数如果是空串的话,容易产生下标越界的错误(因为split后,数组根本不会动态分配存储空间),所以一般需要增加额外的保护变量(一个与参数无关的变量),保证数组的内容如自己想的一样。

这个时候,窗口自带的属性dialogArguments还是比较强大的,代码上有些改观,但是拆数据的时候还是得很小心,否则还是会出错的:

找来的一段代码,或许能很好的说明这一点:

Retrieves the variable or array of variables passed into the modal dialog window.

dhtml语法

[ vVariables = ] window.dialogArguments

DHTML可能的值

vVariables String, numeric, object, or array value that specifies arguments.

The property is read-only. The property has no default value.

Remarks

The dialogArguments property applies only to windows created using the showmodaldialog and showmodelessdialog methods.

Examples

The following example shows how to retrieve information passed into a modal dialog window using the dialogArguments property. This example consists of two snippets of code, which correspond to two different files. One file launches the modal window and the other file stores the code for the modal window.

This file launches the modal window and sends an object to that modal window.

<HTML>
<HEAD>
<SCRIPT>
function fnLaunch()
{
var aForm;
aForm = oForm.elements;
var myObject = new Object();
myObject.firstName = aForm.oFirstName.value;
myObject.lastName = aForm.oLastName.value;
// The object "myObject" is sent to the modal window.
window.showModalDialog("modalDialogSource.htm", myObject, "dialogHeight:300px; dialogLeft:200px;");
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON οnclick="fnLaunch();" >Launch The Window</BUTTON>
<FORM ID= "oForm">
First Name:
<INPUT TYPE="text" NAME="oFirstName" VALUE="Jane">
<BR>
Last Name:
<INPUT TYPE="text" NAME="oLastName" VALUE="Smith">
</FORM>
</BODY>
</HTML>

This file (modalDialogSource.htm), stores the code for the modal window. The object sent to this modal window is retrieved using the dialogArguments property.

<HTML>
<HEAD>
<SCRIPT>
var oMyObject = window.dialogArguments;
var sFirstName = oMyObject.firstName;
var sLastName = oMyObject.lastName;
</SCRIPT>
<title>Untitled</title>
</head>
<BODY STYLE="font-family: arial; font-size: 14pt; color: Snow;
background-color: RosyBrown;">
First Name:
<SPAN STYLE="color:00ff7f">
<SCRIPT>
document.write(sFirstName);
</SCRIPT>
</SPAN>
<BR>
Last Name:
<SPAN STYLE="color:00ff7f">
<SCRIPT>
document.write(sLastName);
</SCRIPT>
</SPAN>
</BODY>
</HTML>

dialogArguments相关推荐

  1. Chrome不支持showModalDialog的解决方案

    Chrome不支持showModalDialog的解决方案 昨天在使用showModalDialog的时候,遇到如下问题: 如果子窗口被刷新过,那么父窗口就接受不到子窗口的返回值. 为了解决这个问题, ...

  2. 利用JS中window.showModalDialog()详解

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

  3. asp.net中窗口相关操作总结(javascript)

    1.打开新窗口    这个简单:Response.Write(@"<script      language=' javascript'>window.open('url');& ...

  4. showModalDialog 传值及刷新

    (一)showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口. farther.html ------------------------- ...

  5. showModalDialog关闭子窗口,并刷新父窗口

    一.用法:window.showModalDialog(url,args,'dialogWidth=650px;scroll=no;dialogHeight=250px;status=no; '); ...

  6. showModalDialog和showModelessDialog使用心得

    showModalDialog和showModelessDialog使用心得 一.showModalDialog和showModelessDialog有什么不同? showModalDialog:被打 ...

  7. [转]JavaScript代码收集

    来自<转贴自大雨仔的js收藏>: //打开模式对话框 function doSelectUser(txtId) { strFeatures="dialogWidth=500px; ...

  8. 实现不同域(Domain)之间的数据交换(转)

    引言 前些天在对公司原有的 web 应用进行改版时遇到一个问题,当时需要从原有的应用中提取出一部分,用一个更为通用的来进行替换,并且仍然保留原有的应用接口.原有的应用属于 news.mycompany ...

  9. 原生js——四种对话框

    js一共提供了四种对话弹框,即alert().confirm().prompt().showModalDialog().具体使用方法如下: 1.alert() alert()向用户显示一条消息并等待用 ...

  10. window.showModalDialog

    window.showModalDialog的用法 基本介绍: showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) window. ...

最新文章

  1. 把握机缘_机缘巧合,蒙太奇训练以及我的朋友如何使自己失业
  2. docker使用_使用Docker正确的姿势
  3. 3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
  4. Linux 环境下umount, 报 device is busy 的问题分析与解决方法
  5. 操作多个表_2_组合相关的行
  6. php 返回页面重复提交,php防止表单重复提交
  7. php如何写文件缓存,PHP代码篇(八)--php实现文件缓存的读写
  8. 在危机中呈现转机的网络管理
  9. android 6.0 ndk版本,[推荐]android-ndk6.0翻译(1)
  10. html svg在线画板,很棒的SVG图形(多边形)在线生成器
  11. 该内存不能read written常见原因
  12. python生成微信小程序码
  13. 如何快速有效的发散思维?
  14. CSAPP Lab2:Bomb Lab
  15. 赛扬J4105和赛扬N5095哪个好
  16. opencv学习之视频帧率
  17. 计算机什么是符号健,在电脑健盘上怎么打:符号
  18. 【dp】LGTB 玩THD
  19. 流媒体技术在宽带网络的应用与发展
  20. 异步书讯:7月有这样7本程序员新书上架

热门文章

  1. ARM 汇编详解 -- 体系结构与编程
  2. OpenCV图像处理--opencv摄像头播放视频
  3. vm虚拟服务器控制端,使用VMware虚拟机实现单主机双屏两人同时使用独立控制
  4. NodeJs安装教程:看教程一步步学会安装NodeJs
  5. Android Facebook登录、分享;ins分享
  6. Java简介:Java是什么?及Java语言的特点
  7. 大三-软件工程复习-自我理解后制作
  8. MyEclipse 7.0 + PHPEclipse下调试环境搭建(xDebug)
  9. 论文丨免费下载SCI全文文献的10个方法
  10. 【亲测】CMD中文乱码终极解决方案