yaoleiroyal

天行健,君子以自强不息!地势坤,君子当厚德载物!

 

window.open 与 window.showModalDialog比较

打开子窗口有两种方式,window.open与window.showModalDialog。

open形式是直接打开一个子窗口,但在ie7以及ie8上都不会直接弹出一个窗口,而是在新标签页中打开,这带来两个问题,一个是操作不方便,另一个是原本明明在open时指定了窗口大小的,但是由于是标签页打开,导致设置的窗口大小完全没用,页面中的内容也是在新窗口中完全打开的,本来设计很好的页面打开后完全变形了。

这个时候最好是选用dialog形式打开窗口,使用它打开窗口时有几点需要注意的。一个是设置窗口的参数,在open时设置参数一般以逗号分隔,比如

window.open("Sample.htm",null,"height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");而在dialog中则是以分号分隔的,另外原来的高度啊什么的在dialog中都需要加上dialog前缀,如:

window.showModalDialog("Sample.htm",window,"dialogHeight:200;dialogWidth:400;status:yes;toolbar:no;menubar:no;location:no");open中的等于也变成了冒号了。

最后说一下如何通过子窗口访问父窗口中的元素,在开发过程中经常会遇到,打开一个子窗口,在子窗口中选择相关参数,然后显示到父窗口中,原本通过open形式打开的子窗口中,通过window.opener就可以了,如window.opener.user.value=啦啦啦。而通过dialog形式打开的窗口,如何访问呢?很简单,就是在写window.showModalDialog时,将window作为该方法的第二个参数,然后在子窗口中通过window.dialogArguments就可以定位到父窗口的window对象。如
var bb =  window.dialogArguments;
bb.document.getElementById("user").value = 啦啦啦。就OK啦,当然通过这种方式也可以轻松实现两者的双向交互。

posted on 2009-10-05 22:59 yaoleiroyal 阅读(1987) 评论(0)  编辑  收藏 所属分类: javaScript


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

导航

统计

常用链接

留言簿(1)

随笔分类(5)

随笔档案(5)

搜索

最新评论

阅读排行榜

评论排行榜