基本知识
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> |
子窗口调用父窗口的东东(控件或者方法):
1. window.open打开的子窗口有window.opener属性
子窗口通过window.opener.xxxx获得父窗口的东东。
如:window.opener.document.getElementById("userName");得到父页面的控件。
window.opener.fresh();调用父页面的js方法。
2. window.showModalDialog:不支持window.opener,
父窗口通过showModalDialog(url,para,feature)第二个参数para传参数给子窗口,
子窗口通过window.dialogArguments获得父窗口穿过来的东西。及获得传过来的的二个参数
子窗口通过window.dialogArguments.xxxx获得父窗口的东东。
如:这里传父页面的的window过去
父页面:showModalDialog(url,window,feature)
子页面:var name = window.dialogArguments.document.getElementById("userName").value;得到父页面的控件。
var name = window.dialogArguments.fresh();调用父页面的方法。
这里的window.dialogArguments就相当于父页面的window,它是通过showModalDialog方法的第二个参数window传过来的,
当然也可以传数组或其它变量。
showModalDialog(url,[1,2,3],feature) //父页面传一个数组给子窗口
showModalDialog(url,window,feature) //父页面把自己的window参数传给子窗口
相关推荐
window.showModalDialog以及window.open用法简介
This is a `window.showModalDialog()` shim using a modal HTML5 `<dialog>` element and ECMAScript 6 Generators. It was tested in the latest Google Chrome with the *Enable Experimental JavaScript* flag ...
针对window.showmodaldialog弹出窗体无刷新的详细使用
window.showModalDialog以及window.open用法简介
window.showModalDialog的基本用法
javascript代码模块之\Window.ShowModalDialog使用手册
NULL 博文链接:https://shawnfree.iteye.com/blog/598885
使用window.showModalDialog的程序员都知道,该方法可返回值。但是如果遇到跨域时,就返回为underfine。本文档通过iframe镶嵌页面解决该问题。
window.showModalDialog&&open.docx
主页面用window.showModalDialog的时候,如果直接打开其它系统的页面,这时候别人的页面在window.returnValue=1;这样返回值的时候,主页面是取不到返回值的,原因就是因为跨域了.
javascript代码模块之window.showModalDialog方法的使用
Window.ShowModalDialog使用手册_对话框 .txt 详细
JS 弹出对话框window.showModalDialog,级联方式,可以返回传值给页面
关于struts2里用javascript刷新window.showModalDialog的父页面
本文实例讲述了js的window.showModalDialog及window.open用法。分享给大家供大家参考。具体分析如下: 一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open...
一个是window.showModalDialog()方法,后者是存在父子关系的一种弹出窗口,只有子窗关闭,父窗口才激活,并且可以传送参数和返回值。正好又温习一遍用法,顺便在此记录过程中遇到的问题。 基本介绍: ...
下面先说说window.showModalDialog的基本用法 showModalDialog() (IE 4+ 支持)showModelessDialog() (IE 5+ 支持)window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。window.showModelessDialog()...