window.open、window.showModalDialog和window.showModelessDialog 的区别

http://dwcmayday201204063551.iteye.com/blog/1621751

showModelessDialog改造兼容firefox和ie

http://blog.linuxphp.org/archives/1454/

showModalDialog)的支持有缺陷

http://www.w3help.org/zh-cn/causes/BX9036

http://blog.csdn.net/tegwy/article/details/5755311

window.showModalDialog使用总结

关于window.showModalDialog的一些配置,网上一大堆,总结下自己在使用中的一些经验吧!

一、window.showModalDialog的滚动条

其实纵向滚动条很好去掉,难办的就是横向滚动条。在Firefox下如果window.showModalDialog宽度设置恰当是不显示横向滚动条的,但在IE下,既然你设置了scroll:0或者如其他人所说的在目标页面中增加overflow:scroll;overflow-x:hidden样式都是没有效果的。对于一些追求完美的开发人员来说,这的确是个头大的事,其实,有个很简单的方法,能很方便的去除横向滚动条的,只需要在目标页面的body上设置宽度并且只要比window.showModalDialog的宽度要小就不会出现滚动,代码如下:

[css] view plaincopy

body {

margin:0;

padding:0;

width:910px;

}

嘿嘿,既方便又好使

二、关于在IE下window.showModalDialog中的链接新窗口打开的问题

把如下代码加到目标页面的中即可

[xhtml] view plaincopy

  

三、window.showModalDialog缓存问题

对于IE下的window.showModalDialog的缓存那是相当的强劲,有时既然你把服务重启、浏览器重启啥的都不好使,而且又不方便。有时需要window.showModalDialog里面的内容时常更新,其实有个小技巧,只要加个变化的参数,使其每次请求的url参数不一样,那么就不会有缓存的问题了。代码如下:

[javascript] view plaincopy

function generateExaminationPaper(uuid) {

window.showModalDialog("GenerateExaminationPaper.do?uuid=" + uuid + "&t=" + new Date().getTime(), window, "dialogWidth:930px;dialogHeight:700px");

}

最后面的参数 t 是最主要的,因为每次请求时这个new Date().getTime()的值都会不一样,这样请求的URL就会不一样,自然就会避免缓存带来的困扰




showModalDialog 父窗口

------------------------------------------

http://fengpy2009.iteye.com/blog/808646

showModalDialog取得父窗口

通常使用window.open的方式开启新窗口的话

要取得父窗口的控件,可以用window.opener来取得父窗口

然而如果使用showModalDialog的话...却无效

如果有需要的话,需要修改开启的语法以及showModalDialog中的语法

开启语法第2个参数请下self,范例如下

var rc=window.showModalDialog(strURL,self,sFeatures);

然后接着就是呼叫父窗口的语法

var pWindow=window.dialogArguments;

这样就可以取得父窗口的window对象控制了。例如:

window.dialogArguments.document.getElementsByName("processId")[0].value;

------------------------------------------

父窗口代码:window.showModalDialog(''login.jsp'', window);//这个window作为参数传递到子窗口,当登录成功后可通过这个对象刷新父窗口

子窗口代码:

window.dialogArguments.document.location.reload();//刷新父窗口

window.close(); //关闭自己

还有一个关键代码:

 

如果不加这段代码,在登录返回之后会打开一个新窗口

------------------------------------------

http://www.owe-love.com/myspace/?action=show&id=179

showModalDialog取得父窗口的方法、Parent对象

通常使用window.open的方式开启新窗口的话

要取得父窗口的控件,可以用window.opener来取得父窗口

然而如果使用showModalDialog的话...却无效

如果有需要的话,需要修改开启的语法以及showModalDialog中的语法

开启语法第2个参数请下self,范例如下

var rc=window.showModalDialog(strURL,self,sFeatures);

然后接着就是呼叫父窗口的语法

var pWindow=window.dialogArguments;

这样就可以取得父窗口的window对象控制了。例如:

window.dialogArguments.document.getElementsByName("processId")[0].value;

js中 opener和parent的区别

opener即谁打开我的,比如A页面利用window.open弹出了B页面窗口,那么A页面所在窗口就是B页面的opener,在B页面通过opener对象可以访问A页面。

parent表示父窗口,比如一个A页面利用iframe或frame调用B页面,那么A页面所在窗口就是B页面的parent。

在JS中,window.opener只是对弹出窗口的母窗口的一个引用。

------------------------------------------

showModalDialog 刷新父窗口问题

http://zhidao.baidu.com/question/139960770.html

a。aspx 有iframe 指向 b。aspx 页面

b.aspx 页面调用了showModalDialog 调用代码如下

");

现在出现问题 不管是点添加按钮 还是 关闭按钮 父窗口会多出一个上下滚动条