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

原创 2003年10月02日 01:15:00

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

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

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

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

js设置自动关闭当前窗口,无对话框

//设置自动关闭窗口,无对话框     function init(){     window.opener=null;      window.open('','_self');      ...
  • zelda002
  • zelda002
  • 2012年05月25日 11:00
  • 3972

【转】window.showModelessDialog的改进(兼容FF的window.showModelessDialog)

window.showModelessDialog的改进文/Hafeyang  出处/博客园window.showModelessDialog方法比window.open方法弹出的窗口不同的是弹出的窗...
  • viperasi
  • viperasi
  • 2008年10月15日 11:50
  • 2445

弹出窗口window.showModelessDialog参数介绍

window.showModelessDialog("url","name","参数:值;参数:值;……")  url:对话框窗口链接地址  name:对话框的名称,可以为空  scroll:是否有滚...
  • steamlin
  • steamlin
  • 2010年07月28日 14:11
  • 1714

MFC中非模式对话框与模式对话框的区别

 1.定义 在弹出窗体时,弹出的窗体要以进行编辑,而主窗体不能被编辑,这样的窗体称为模式窗口,又叫模态窗口。当有弹出窗体时,主窗体也可以编辑,这样的窗体称为非模式窗体,又叫做无在弹出窗体时,弹...
  • ljsant
  • ljsant
  • 2016年06月30日 10:16
  • 217

MFC中非模式对话框的细节

无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口。创建无模式对话框需要调用 BOOL CDialog::Create( UINT nID...
  • wangyangkobe
  • wangyangkobe
  • 2010年11月03日 17:21
  • 594

打开新窗口(IE 内小IE窗口)

 showModalDialog()、showModelessDialog()方法使用详解 Javascript有许多内建的方法来产生对话框,如:window.alert(), window.conf...
  • banmuhuangci
  • banmuhuangci
  • 2005年12月01日 09:14
  • 1122

window.showModelessDialog传值

参数传递: 1.   要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大 为4096个字符。也可以传递对象,例如: ------------------...
  • qq_32311977
  • qq_32311977
  • 2015年10月28日 09:37
  • 618

弹出窗口window.showModelessDialog的参数

弹出窗口window.showModelessDialog的参数   弹出窗口window.showModelessDialog的参数   网页对窗口控制已经有很多文章介绍...
  • u014401141
  • u014401141
  • 2016年06月29日 16:02
  • 1902

IE模式对话框编程技术(Javascript)

showModalDialog和showModelessDialog使用心得一、showModalDialog和showModelessDialog有什么不同?  showModalDialog:被打...
  • wangzhkai
  • wangzhkai
  • 2007年11月07日 18:34
  • 469

IE模式对话框编程技术(Javascript)

ssshowModalDialog和showModelessDialog使用心得 一、showModalDialog和showModelessDialog有什么不同?   showModalDia...
  • applepop
  • applepop
  • 2007年11月07日 09:05
  • 596
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IE中非模式对话框(showModelessDialog)应用
举报原因:
原因补充:

(最多只允许输入30个字)