`
拓子轩
  • 浏览: 211917 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

showModalDialog用法一览

    博客分类:
  • js
阅读更多
  1.  在web开发中,经常会遇到需要弹出一个子窗口的情况,并且子窗口和父窗口之间需要保持良好的通信。如弹出一个子查询窗口,并把查询出的某项信息填充到父窗口的表单中,这时使用window对象的showModalDialog打开一个模态对话框来实现这一功能是非常有用的。

          下面是一个简单示例

// src.html
<script type="text/javascript">
	window.showModalDialog("des.html");
</script>

  

// des.html
<script type="text/javascript">
	alert("this is des.html");
</script>

   2.    为使打开的模态对话框的外观满足我们的要求,必须要设置对话框的样式。该方法的第三个参数可以用来设置我们需要的外观样式。

<script type="text/javascript">
	window.showModalDialog("des.html", "", "dialogWidth: 600px; dialogHeight: 600px");
</script>

 样式属性的设置是键值对的形式进行的,多个属性设置之间用分号“;”隔开。

 可以设置的样式属性如下:

  • dialogHeight :对话框高度,不小于100pxpx,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
  • dialogWidth: 对话框宽度。
  • dialogLeft: 离屏幕左的距离。
  • dialogTop: 离屏幕上的距离。
  • center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
  • help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
  • resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
  • status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
  • scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
    下面几个属性是用在HTA中的,在一般的网页中一般不使用。
  • dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
  • edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
  • unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。

 3.  但是最重要的在于如何向模态对话框中传递参数了,相信很多朋友都发现在上面的例子中showModalDialog方法的第二个参数为空字符串,其实我们就是通过它把信息传递到模态对话框中的。

 

// src.html
<script type="text/javascript">
	window.showModalDialog("des.html", "my name is tuozixuan", "dialogWidth: 600px; dialogHeight: 600px");
</script>

 

   在模态对话框窗体中需要用到window对象的dialogArguments属性来获取传递过来的参数(中英文字符都可)。

// des.html
<script type="text/javascript">
	var msg = window.dialogArguments
	alert(msg);
</script>

   在向模态对话框传递参数时,不仅可以是字符串,还可以是Number、数组、对象等类型。

  • 数字类型
// src.html
<script type="text/javascript">
	window.showModalDialog("des.html", 1, "dialogWidth: 600px; dialogHeight: 600px");
</script>

// des.html
<script type="text/javascript">
	var msg = window.dialogArguments
	alert(msg);
</script>
  •  数组类型
// src.html
<script type="text/javascript">
	window.showModalDialog("des.html", [1,2,3], "dialogWidth: 600px; dialogHeight: 600px");
</script>

// des.html
<script type="text/javascript">
	var msg = window.dialogArguments
	alert(msg[2]);
</script>
  •  对象类型
// src.html
<script type="text/javascript">
	var obj = new Object();
	obj.name = "tuozixuan";
	obj.age = 1000;
	window.showModalDialog("des.html", obj, "dialogWidth: 600px; dialogHeight: 600px");
</script>

// des.html
<script type="text/javascript">
	var msgObj = window.dialogArguments;
	alert(msgObj.name + "  " + msgObj.age);
</script>

 4.  模态对话框向父窗口传递信息

      如果需要把模态对话框中的数据传递给父窗口中,需要用到模态对话框中window对象的returnValue属性。当用户关闭模态对话框时,浏览器将会把returnValue属性的值返回给父窗口,若该属性未设置,则返回undefined。

// src.html
<script type="text/javascript">
	var obj = new Object();
	obj.name = "tuozixuan";
	obj.age = 1000;
	var resultData = window.showModalDialog("des.html", obj, "dialogWidth: 600px; dialogHeight: 600px");
	alert(resultData);
</script>

// des.html
<script type="text/javascript">	
	window.returnValue = "hello"; 
</script>

   其中window对象的returnValue属性可以设置为数字、字符串、数字、对象等数据类型,情况和从父窗口向模态对话框中传递数据类似,在此不再赘述。

 

 5.  模态对话框调用父窗口的js方法

      可以把父窗口的window对象作为参数传递给模态对话框,模态对话框获取到参数对象的句柄后就可以调用父窗口的js方法了。

// src.html
<script type="text/javascript">
	window.showModalDialog("des.html", window, "dialogWidth: 600px; dialogHeight: 600px");
	
	function showMsg()
	{
		alert("飞雪连天射白鹿,笑书神侠倚碧鸳");
	}
</script>

// des.html
<script type="text/javascript">
	window.dialogArguments.showMsg(); 
</script>

 

尾言:由于个人水平有限,如发现任何错误之处,烦请指正,鄙人不胜感激!

分享到:
评论

相关推荐

    Window.ShowModalDialog使用手册

    在JavaScript编程语言中,`Window.showModalDialog()`方法是一个非常重要的功能,主要用于打开一个模态对话框,即用户必须关闭对话框才能与父窗口进行交互。这个方法在创建用户交互和自定义弹出窗口场景中非常有用。...

    showModalDialog用法

    ### showModalDialog用法详解 `showModalDialog`是早期Internet Explorer浏览器中提供的一个用于创建模态对话框的方法。它能够阻止用户与当前页面的其他部分交互,直到对话框被关闭为止。本文将详细介绍`...

    使用selenium测试showModalDialog模态对话框

    然而,对于某些特定的功能,比如 Internet Explorer 中的 `showModalDialog` 方法,Selenium 存在一定的局限性。`showModalDialog` 是一个古老的浏览器API,用于创建模态对话框,它会阻塞页面的JavaScript执行,直到...

    showModalDialog用法总结

    项目中用到showModalDialog,总结一下使用心得与注意事项

    showmodaldialog的用法收集

    以上就是`showModalDialog`和`showModelessDialog`的基本用法和一些常见问题的解决方案。在实际开发中,需要注意浏览器兼容性和最佳实践,因为这些方法在某些现代浏览器中可能已被废弃或有替代方案。例如,考虑使用...

    showModalDialog和showModelessDialog使用心得

    ### showModalDialog和showModelessDialog使用心得:深入解析与实践 在Web开发中,`showModalDialog` 和 `showModelessDialog` 是两种用于创建弹出窗口的方法,它们各自具有独特的特性和应用场景。本文将详细解析这...

    window.showModalDialog的基本用法

    ### window.showModalDialog 的基本用法 `window.showModalDialog` 是一个早期的浏览器功能,主要在 Internet Explorer(IE)4.0 及以上版本中支持。它用于打开一个新的模态对话框窗口,并且该窗口将阻止用户与主...

    showModalDialog技术文章

    这篇名为"showModalDialog技术文章"的博客文章可能详细介绍了这个API的使用方法、优缺点以及一些实际应用场景。 `showModalDialog`函数在JavaScript中被用来创建一个阻塞式的对话窗口,这意味着用户必须与对话框...

    showModalDialog和open方法demo实例

    在`DialogDemo`这个实例中,可能包含了使用`showModalDialog`方法创建对话框的代码和相关HTML、CSS和JavaScript文件,供开发者学习和参考。通过查看和运行这些示例,你可以更好地理解这两个方法的用法和效果。在实际...

    解决window.showModalDialog跨域返回值

    首先,我们来看一下`window.showModalDialog`的基本用法。在站点1(系统1的访问页面)中,我们可以通过以下代码弹出一个模态对话框: ```javascript function onclickOrder() { var paramObj = new Object(); // ...

    window.showModalDialog方法的使用

    下面我们将详细探讨`window.showModalDialog`的使用及其相关知识点。 首先,`window.showModalDialog`的基本语法如下: ```javascript var returnValue = window.showModalDialog(url, [dialogArguments], ...

    window.showModalDialog以及window.open用法简介

    Window.showModalDialog 和 Window.open 都是 JavaScript 中的方法,用于创建新窗口或对话框,下面分别介绍它们的用法和参数。 一、Window.open() 方法 Window.open() 方法用于打开一个新的浏览器窗口,可以指定新...

    showModalDialog

    "showModalDialog"是JavaScript中的一个古老但仍然有用的弹出窗口方法,用于在浏览器环境中打开一个新的对话窗口。这个方法在Web开发中主要用于创建模态对话框,即那些阻止用户与页面其余部分交互直到对话框被关闭的...

    showModalDialog参数传递和获

    `showModalDialog`方法的参数传递和获取是它功能的关键部分,下面我们将详细讨论。 ### 1. `showModalDialog`方法的基本语法 `showModalDialog`接受三个主要参数: - **URL**:指定对话框加载的页面URL,可以是...

    showModalDialog参数使用详解

    本篇文章将深入探讨`showModalDialog`的参数使用,以及如何在子父窗口之间传递数据。 `showModalDialog`函数的基本语法如下: ```javascript window.showModalDialog(url, [startNode], [features]); ``` - `url`...

    showModalDialog()、showModelessDialog()方法的使用.

    在Web开发中,有时我们...需要注意的是,这两个方法在现代浏览器中支持度有限,尤其是跨浏览器兼容性问题,因此在新的项目中可能会考虑使用更通用的解决方案,如Bootstrap的模态框或者其他前端框架提供的对话框组件。

    如何使用showModalDialog

    本篇文章将深入探讨`showModalDialog`的使用方法、参数、返回值以及它在现代Web开发中的地位。 `showModalDialog`的基本语法如下: ```javascript window.showModalDialog(url, windowObject, features); ``` 1. ...

    div层实现showModalDialog

    div层实现showModalDialog

    showModalDialog跨域解决例子

    然而,当尝试使用`showModalDialog`在不同源之间打开页面时,同样会遭遇跨域限制。标题"showModalDialog跨域解决例子"表明我们将探讨如何克服这个限制。 首先,理解跨域的原理至关重要。同源策略是浏览器为了安全而...

Global site tag (gtag.js) - Google Analytics