showModalDialog()、showModelessDialog()方法使用详解

97小斤斤

97小斤斤

2016-02-19 16:42

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享showModalDialog()、showModelessDialog()方法使用详解的教程,热爱PS的朋友们快点看过来吧!

  Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如:

showModalDialog()
(IE 4+ 支持)

showModelessDialog()
(IE 5+ 支持)

  window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。

  当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。

  使用方法如下:

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

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

  参数说明:

  sURL

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

  vArguments

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

  sFeatures

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

  dialogHeight 对话框高度,不小于100px,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。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  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。

  传入参数:

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

  test1.htm

  ====================

script var mxh1 = new Array("mxh","net_lover","孟子E章") var mxh2 = window.open("about:blank","window_mxh") // 向对话框传递数组 window.showModalDialog("test2.htm",mxh1) // 向对话框传递window对象 window.showModalDialog("test3.htm",mxh2)/script

  test2.htm

  ====================

script var a = window.dialogArguments alert("您传递的参数为:" + a)/script

  test3.htm

  ====================

script var a = window.dialogArguments alert("您传递的参数为window对象,名称:" + a.name)/script

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

  test4.htm

  ===================

script var a = window.showModalDialog("test5.htm") for(i=0;ia.length;i++) alert(a[i])/script

  test5.htm

  ===================

scriptfunction sendTo(){ var a=new Array("a","b") window.returnValue = a window.close()}/scriptbodyform input value="返回" type=button onclick="sendTo()"/form

  常见问题:

  1,如何在模态对话框中进行提交而不新开窗口?

  如果你 的 浏览器是IE5.5+,可以在对话框中使用带name属性的iframe,提交时可以制定target为该iframe的name。对于IE4+,你可以用高度为0的frame来作:例子,

  test6.htm

  ===================

script window.showModalDialog("test7.htm")/script

  test7.htm

  ===================

if(window.location.search) alert(window.location.search)frameset rows="0,*" frame src="about:blank" frame src="test8.htm"/frameset

  test8.htm

  ===================

form target="_self" method="get"input name=txt value="test"input type=submit/formscriptif(window.location.search) alert(window.location.search)/script

  2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗?

  答案是不能。但在frame里是可以的。

展开更多 50%)
分享

猜你喜欢

showModalDialog()、showModelessDialog()方法使用详解

Web开发
showModalDialog()、showModelessDialog()方法使用详解

showModalDialog 和 showModelessDialog

Web开发
showModalDialog 和 showModelessDialog

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

showModelessDialog()使用详解

Html CSS布局 Div+CSS XHTML
showModelessDialog()使用详解

JS技巧之showModelessDialog()使用详解

Web开发
JS技巧之showModelessDialog()使用详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

window.showModalDialog使用手册

Web开发
window.showModalDialog使用手册

详解配色方法及色彩使用技巧

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
详解配色方法及色彩使用技巧

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

正则表达式(regular expression)(1)

正则表达式(regular expression)(1)

正则表达式(regular expression)(3)

正则表达式(regular expression)(3)
下拉加载更多内容 ↓