当前位置: 首页 > 图文教程 > 网络编程 > Javascript > IE中非模式对话框(showModelessDialog)应用

Javascript
JS教程:浅谈ECMAScript自动插入分号
JavaScript教程:几种比较熟悉的编程习惯
JS实例:登陆失败后跳出框架打开
webdesignledger推选的2009年度最佳jQuery插件
javaScript教程:以实例方式学习call函数
JS教程:词法作用域和闭包
表单验证中时间起止 如何做到递归处理
JS实例教程:当心JavaScript代码陷阱
Firebug技巧:脚本调试,选项卡和CSS调试
学习javascript:牛人的讲座视频和PPT
Clearbox 3:很酷的仿Lightbox脚本
JavaScript教程:详细解析网页图片预览效果
JS代码实例:实现随机加载不同的CSS样式
国人开发的比较优秀的js框架:como js
Webjx收集10个最常用Ajax技术的实例教程
JavaScript教程:优化次数过多的循环
出色的jQuery导航菜单的14个英文教程
JS教程:学习笔记之JS类
JS教程:详细讲解JS节点知识
COM中获取JavaScript数组大小的代码

Javascript 中的 IE中非模式对话框(showModelessDialog)应用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 354 ::
收藏到网摘: n/a

非模式对话框是IE的一种窗口形式,打开非模式对话框后,在其被关闭之前,主调窗口不会继续解析其后的htm代码,同时主调窗口也不会被选中。

 

主调窗口与非模式窗口的信息传递

1.函数调用传递方式

vReturnValue = window.showModelessDialog ( sURL [, vArguments] [, sFeatures] )

 

主调窗口通过showModelessDialog方法的第二个参数 vArguments 向非模式窗口传递参数,该参数可以是数组,也可以是DOM对象。

非模式窗口通过window.dialogArguments 来提取传递过来的参数,若是数组,则用window.dialogArguments[i]来表示数组的第i个参数

非模式窗口通过window.returnValue向主调窗口传回值,这个值作为showModelessDialog 方法的返回值被主调窗口接收。

 

2.窗口操作传递方式

非模式窗口通过主调窗口传递过来window对象直接操纵主调窗口的元素

此时showModelessDialog 需要将主调窗口的 window 对象作为参数传出,在非模式窗口中即可取得主调窗口的窗口参考,用脚本可以直接对它操纵。

 

如主调窗口的调用代码如下:

showModelessDialog ("myDialog.htm",window,"status:false;dialogWidth:300px;dialogHeight:300px;edge:Raised; enter: Yes; help: No; resizable: No; status: No");

 

非模式窗口JScript代码如下,即可接收主调窗口的窗口对象

  var sData = window.dialogArguments;

 

接着就可以操作主调窗口的任意变量和函数了,如下:

  sData.sUserName = ‘Value from ModelessDialog’; // sUserName是主调窗口的全局变量

  sData.fnUpdate(); //fnUpdate是主调窗口的函数,在该函数中对sUserName变量做处理

 

这种方式下,主调窗口可以不通过普通返回值方式取得非模式窗口设定的数值

 

备注:

将主调窗口的Window对象传入非模式窗口是一种很灵活的操作手段。但在实践中发现,窗口对象只能是主调窗口自己的,你不能通过Dom对象结构,将其他帧页面(非主调窗口)的Window对象传入。但在非模窗口中可以根据传入的主调窗口的Window对象,通过Dom对象结构引用到非主调窗口的任何对象。

 

关于非模式对话框的参数设置sFeatures

http://msdn.microsoft.com/workshop/samples/author/dhtml/refs/showModelessDialog.htm