本文转载:http://www.cnblogs.com/sunnycoder/archive/2010/05/05/1728047.html

基本知识

l  showModalDialog() (IE 4+ 支持)

l  showModelessDialog() (IE 5+ 支持)

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

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

使用方法

var returnValue = window.showModalDialog(sURL[,vArguments][,sFeatures]);

var returnValue = window.showModelessDialog(sURL[,vArguments][,sFeatures]);

参数说明

参数名称

性质

类型

作用

sURL

必选

字符串

用来指定对话框要显示的网页的URL。

vArguments

可选

任何类型

用来向对话框传递参数。参数类型不限。

对话框通过window.dialogArguments来取得传递进来的参数。

sFeatures

可选

字符串

用来描述对话框的外观等信息

sFeatures参数说明

参数名称

参数属性

说明

dialogHeight

npx

对话框高度,不小于100px

dialogWidth

npx

对话框宽度

dialogLeft

npx

离主窗口左的距离

dialogTop

npx

离主窗口上的距离

center

{yes | no | 1 | 0 }

窗口是否居中,默认yes

help

{yes | no | 1 | 0 }

是否显示帮助按钮,默认yes

resizable

{yes | no | 1 | 0 }

是否可改变大小,默认no

status

{yes | no | 1 | 0 }

是否显示状态栏,默认为yes[ Modeless]或no[Modal]

dialogHide

{ yes | no | 1 | 0 | on | off }

在打印或者打印预览时对话框是否隐藏,默认为no

scroll

{ yes | no | 1 | 0 | on | off }

指明对话框是否显示滚动条,默认为yes

edge

{ sunken | raised }

指明对话框的边框样式,默认为raised

unadorned

{ yes | no | 1 | 0 | on | off }

默认为no

注意:dialogHide,edge,unadorned这三个属性是用在HTA(HTML Aplication)中的,一般网页上用不到。

参数传递

通过vArguments来传递参数,类型不限制,对于字符串类型,最大为4096个字符,也可以传递对象,例如:

a.html

var p = { Name: "Sunny D.D", Age: 25 };

window.showModalDialog("b.html", p);

b.html

alert(window.dialogArguments.Name);

当显示b.html页面时,会弹出对话框,内容为“Sunny D.D”。

返回值

通过window.returnValue向打开对话框的窗口返回信息,也可以是对象。例如:

a.html

window.showModalDialog("b.html");

alert(window.returnValue.Name);

b.html

var p = { Name: "Sunny D.D", Age: 25 };

window.returnValue = p;

当关闭b.html页面时,会弹出对话框,内容为“Sunny D.D”。

防止模态窗口打开新窗口

在页面的 <body>标签前加入<base target="_self">:

<head>

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<title>测试页</title>

<base target="_self" />

</head>

<body>

</body>

调用父窗口的属性或者方法

参数方式

因为vArguments参数的类型没有限制,所以可以将父窗体对象作为参数的一个属性传递至子窗体:

parent.htm

<script>

function show() {//父窗口的方法

alert("show");

}

var arg = new Object(); //传递进去的参数

arg.win = window; //把当前窗口的引用当参数传进去

arg.str = "argument"; //要传进去的其他参数

window.showModalDialog("son.htm", arg, 'help:no');

</script>

son.htm

<script>

var arg = window.dialogArguments;

alert(arg.str);

arg.win.show(); //调用父窗口的方法

</script>

window.parent方式

在子窗体中,可以使用语句window.parent来获取父窗体对象,从而调用父窗体的属性与方法:

parent.htm

<script>

function show() {//父窗口的方法

alert("show");

}

window.showModalDialog("son.htm");

</script>

son.htm

<script>

window.parent.show(); //调用父窗口的方法

</script>

window.showModalDialog基础的更多相关文章

  1. 让IE8在win7下面能显示使用window.showmodaldialog弹出窗口的地址状态栏

    问题来源:最近又要对老的系统进行改善,由于用到了window.showmodaldialog这个方法弹出窗口,比如从主界面弹出新增或者修改窗口,如下图所示,显示没有地址栏,进行代码修改还要找到相应的文 ...

  2. window.showModalDialog的简单实践

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

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

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

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

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

  5. 关于window.showModalDialog的一些配置

    关于window.showModalDialog的一些配置 一.window.showModalDialog的滚动条 其实纵向滚动条很好去掉,难办的就是横向滚动条.在Firefox下如果window. ...

  6. window.open()&&window.showmodaldialog()

    open 打开一个新窗口,并装载URL指定的文档,或装载一个空白文档,如果没提供URL的话. 适用于 窗口 语法 window = object.open([URL[,name[,features[, ...

  7. JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 公共部分 //父对象得到子窗口的值 //ObjectID是窗口标识,ContentID是元素ID function GetValue(ObjectID,ContentID) { ...

  8. JS中window.showModalDialog()详解

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

  9. 项目中用到的window.showModalDialog(来自网络)

    window.showModalDialog相关: showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) window.showMo ...

随机推荐

  1. [反汇编练习] 160个CrackMe之006

    [反汇编练习] 160个CrackMe之006. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  2. 纯css3写的仿真图书翻页效果

    对css3研究越深入,越觉得惊艳.css3说不上是万能的,但是它能实现的效果也超出了我的想象.它的高效率和动画效果的流畅性很多情况下能替代js的作用.个人习惯css3能实现的效果就不会用js,虽然在国 ...

  3. noip2008提高组题解

    第一题:笨小猴 模拟   第二题:火柴棒等式 搜索 深搜不用说,确定出两个加数然后判断能否拼出等式. 枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解.不过这题的数据貌似很温和,我 ...

  4. 最简单的视音频播放示例2:GDI播放YUV, RGB

    前一篇文章对“Simplest Media Play”工程作了概括性介绍.后续几篇文章打算详细介绍每个子工程中的几种技术.在记录Direct3D,OpenGL这两种相对复杂的技术之前,打算先记录一种和 ...

  5. RAC集群时间同步服务

    集群时间同步服务在集群中的两个 Oracle RAC 节点上执行以下集群时间同步服务配置.Oracle Clusterware 11g 第 2 版及更高版本要求在部署了 Oracle RAC 的集群的 ...

  6. Web开发人员必备工具-Emmet (Zen Coding)

    如果你从事前端开发或者web开发的话,一定听说过Zen coding - 一种快速编写HTML/CSS代码的方法.它使用仿CSS选择器的语法来快速开发HTML和CSS - 由Sergey Chikuy ...

  7. Android学习笔记一

    一.eclipse中的十大快捷键: 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的 ...

  8. 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?

    题目:给定一个函数rand()能产生1到n之间的等概率随机数,问如何产生1到m之间等概率的随机数? 先把问题特殊化,例如原题变为给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一 ...

  9. c# Chart设置样式

    一.chart属性熟悉 能够对C# chart控件属性熟悉起帮助的code, 现在分享给大家,Chart Operate Demo Code Download,如有帮助,别忘点个赞. Chart    ...

  10. [Everyday Mathematics]20150125

    试求极限 $$\bex \lim_{x\to 0^+}\int_x^{2x} \frac{\sin^m t}{t^n}\rd t\quad\sex{m,n\in\bbN}. \eex$$