首页 web前端 js教程 window.showModalDialog()返回值的学习心得总结_javascript技巧

window.showModalDialog()返回值的学习心得总结_javascript技巧

May 16, 2016 pm 05:04 PM
返回值

下面先说说window.showModalDialog的基本用法

showModalDialog() (IE 4+ 支持)
showModelessDialog() (IE 5+ 支持)
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。

使用方法:
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])

参数说明:
sURL--必选参数,类型:字符串。用来指定对话框要显示的文档的URL。

vArguments--可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。

sFeatures--可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。

1.dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
2.dialogWidth: 对话框宽度。
3.dialogLeft: 离屏幕左的距离。
4.dialogTop: 离屏幕上的距离。
5.center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
6.help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
8.status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
9.scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。

下面几个属性是用在HTA中的,在一般的网页中一般不使用。
10.dialogHide:
{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
11.edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
12.unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。

参数传递:
1.要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:

复制代码 代码如下:

<script><BR>var obj = new Object();<BR>obj.name="ttop";<BR>window.showModalDialog("test.htm",obj,"dialogWidth=200px;dialogHeight=100px");<BR></script>
test.htm
<script><BR>var obj = window.dialogArguments<BR>alert("您传递的参数为:" + obj.name)<BR></script>

2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
复制代码 代码如下:

<script><BR>str =window.showModalDialog("test.htm",,"dialogWidth=200px;dialogHeight=100px");<BR>alert(str);<BR></script>
test.htm
<script><BR>window.returnValue="/";<BR></script>

一、showModalDialog和showModelessDialog有什么不同?

showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。

showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)

二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?

在被打开的网页里加上就可以了。这句话一般是放在和

之间的。

三、怎样才刷新showModalDialog和showModelessDialog里的内容?

在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠javascript了,以下是相关代码:


将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要配合使用,不然你按下F5会弹出新窗口的。

四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。

也要配合,不然会打开一个新的IE窗口,然后再关掉的。

五、showModalDialog和showModelessDialog数据传递技巧。
(作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)

这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。

例子:现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name

一般的传递方式:
window.showModalDialog("filename.htm",var_name)
//传递var_name变量
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量
这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
    
以下是我建议使用的传递方式:
window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量

同时我也可以操作var_id变量
alert(window.dialogArguments.var_id)//读取var_id变量
window.dialogArguments.var_id="001"//设置var_id变量

同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
window.dialogArguments.form1.index1.value="这是在设置index1元素的值"

在父页面中用onClick=""var reVal = window.showModalDialog('changephoto.htm','dialogWidth:500px;dialogHeight:300px;help:no');if (typeof(reVal) != 'undefined') {form.textname.value=reVal;}"" cursor:hand "">点击这里修改图片

在字窗口'changephoto.htm'中打开一个框架集,框架集中包含一个asp文件,先将asp的值返回到changephoto.htm中 再将这个值返回到主页面中

changephoto.htm:

function onClose() { window.returnValue = form1.save.value;//也可以将window.returnValue改成window.dialogArguments.oblogform.blogimage.value window.close(); }

asp文件:parent.document.form1.save.value ="值或变量";

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Python 获取线程返回值的三种方式 Python 获取线程返回值的三种方式 Apr 13, 2023 am 10:43 AM

提到线程,你的大脑应该有这样的印象:我们可以控制它何时开始,却无法控制它何时结束,那么如何获取线程的返回值呢?今天就分享一下自己的一些做法。方法一:使用全局变量的列表,来保存返回值ret_values = [] def thread_func(*args): ... value = ... ret_values.append(value)选择列表的一个原因是:列表的 append() 方法是线程安全的,CPython 中,GIL 防止对它们的并发访问。如果你使用自定义的数据结构,在并

scanf返回值被忽略怎么解决 scanf返回值被忽略怎么解决 Nov 14, 2023 am 10:01 AM

scanf返回值被忽略的解决办法有检查scanf的返回值、清除输入缓冲区和使用fgets替代scanf等。详细介绍:1、检查scanf的返回值,应该始终检查scanf函数的返回值,scanf函数的返回值是成功读取的参数的数量,如果返回值与期望的不一致,就意味着输入有误;2、清除输入缓冲区,在使用scanf函数时,如果输入的数据与期望的格式不匹配,将导致输入缓冲区中的数据等等。

使用java的Math.min()函数比较两个数值的大小并返回较小值 使用java的Math.min()函数比较两个数值的大小并返回较小值 Jul 25, 2023 pm 01:21 PM

使用Java的Math.min()函数比较两个数值的大小并返回较小值在开发Java应用程序时,有时我们需要比较两个数值的大小,并返回较小的那个数。Java提供了Math.min()函数来实现这个功能。Math.min()函数是JavaMath类的一个静态方法,它用于比较两个数值的大小并返回较小的那个数。它的语法如下:publicstaticintmi

Golang 函数可以返回多个值吗? Golang 函数可以返回多个值吗? Apr 13, 2024 pm 02:42 PM

是的,Go函数可以通过返回一个元组来返回多个值,元组是一种不可变的值,可以包含不同类型的数据。

C++ 函数指针作为函数返回值 C++ 函数指针作为函数返回值 Apr 14, 2024 am 08:30 AM

函数指针可以作为函数返回值,允许我们在运行时确定要调用的函数。语法为:returntype(*function_name)(param1,param2,...)。优点包括动态绑定和回调机制,使我们可以根据需要调整函数调用。

C++ 函数返回值类型的常见类型 C++ 函数返回值类型的常见类型 Apr 12, 2024 pm 05:36 PM

C++函数返回类型包括:void(无返回值)、基本类型(整数、浮点数、字符和布尔值)、指针、引用、类和结构。选择时,应考虑功能、效率和接口。如计算阶乘的factorial函数,返回整数类型以满足功能需求和避免额外操作。

在 C++ 中使用函数返回值:详解类型和含义 在 C++ 中使用函数返回值:详解类型和含义 May 01, 2024 am 08:27 AM

函数返回值在C++中至关重要,它允许函数返回指定类型的数据:返回值类型定义函数返回数据的类型,包括基本类型(如int、float)和自定义类型(如指针、引用)。返回值含义根据函数意图而异,例如返回结果、指示状态、提供引用或创建新对象。

PHP返回数组内部指针当前指向的键名 PHP返回数组内部指针当前指向的键名 Mar 21, 2024 pm 04:21 PM

这篇文章将为大家详细讲解有关PHP返回数组内部指针当前指向的键名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP返回数组内部指针当前指向的键名php提供了一个叫做key()的函数,用于返回数组内部指针当前指向的键名。此函数适用于索引数组和关联数组。语法key(array)参数array:要从中获取键名的数组。返回值内部指针当前指向的键名,如果是索引数组,则返回整数索引;如果是关联数组,则返回字符串键名。如果数组为空或者内部指针指向数组末尾,则返回NULL。

See all articles