|
锁定老贴子 主题:js打开模态窗口的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2006-12-05
js里打开模态窗口都知道使用window.showModalDialog()方法,但是该方法有许多的不便之处,
比如 1 打开的子窗口不能得到window.openner,因此子窗口无法访问父窗口数据. 如果要传递数据的话, 只能在Dialog窗口中用window.returnvalue. 2 Dialog窗口中提交任何数据, 结果都会提交到一个新得窗口中去. 3 window.close()的方法无法关闭Dialog,需要触发事件才可以. 因此我使用了window.open()方法,但是如何使他成为模态的呢? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2006-12-05
samsummer 写道 js里打开模态窗口都知道使用window.showModalDialog()方法,但是该方法有许多的不便之处,
比如 1 打开的子窗口不能得到window.openner,因此子窗口无法访问父窗口数据. 如果要传递数据的话, 只能在Dialog窗口中用window.returnvalue. 2 Dialog窗口中提交任何数据, 结果都会提交到一个新得窗口中去. 3 window.close()的方法无法关闭Dialog,需要触发事件才可以. 因此我使用了window.open()方法,但是如何使他成为模态的呢? 1.通过模态窗口的参数将父窗口的句柄传过去 2.套一个iframe 3.这个有必要? 还有一个很讨厌的,在不同的操作系统或主题下,标题栏和状态栏的大小不同,使得模态窗口的大小很难控制 另外showModalDialog是IE特有的,最好不要用,可以用层模拟模态窗口 |
|
| 返回顶楼 | |
|
时间:2006-12-05
呵呵,你说的这些问题都有解决方法..
1.showModalDialog打开的窗口想访问父窗口的数据的话 window.showModalDialog("filename.htm",window)
在子窗体中用window.dialogArguments得到就是你的父窗体对象,这样就能访问到父窗体数据了. 2.在子窗体应用的文件的head区之间添加 <base target="_self"> 这样在打开的子窗体中的链接仍然会在子窗体刷新,而不会跑到新窗口。。 3.配合上面这句以后,window.close()就可以关闭打开的Dialog了。 --------------------- 多研究下好了 |
|
| 返回顶楼 | |
|
时间:2006-12-05
有些情况用showModalDialog打开的窗口文件再套用iframe才能做出来。
|
|
| 返回顶楼 | |
|
时间:2006-12-05
moogle 写道 有些情况用showModalDialog打开的窗口文件再套用iframe才能做出来。
这个最诡异了 我一直没弄明白为什么 以前遇到过 也是这么解决的 一个 ./abc/XXXXX.do 就不行 一个 ./abc/XXXXX.jsp 就可以 想用.do必须放到iframe里 肯定与安全性有关 但是一直没找到相关的完整合理的解释 我自己的分析是 showModalDialog中打开的路径对应的文件或servlet内部经过forward过的 可能就不可以.(也就是说url和显示的内容所在的url不一致) 例如 如果一个servlet 内部 直接 out出 html就可以 但是 servlet 内部使用了 RequestDispatcher forward到了另外的url 则不允许显示 url是 XXXXX.do 但是 do的内部forward到了 一个jsp 两者不一致 所以就不行 瞎分析 见笑了 呵呵 |
|
| 返回顶楼 | |
|
时间:2006-12-05
用div模拟模式窗口要好得多 网上类似的小js lib有很多
|
|
| 返回顶楼 | |
|
时间:2006-12-05
我一直在找一个完美的 简便的 跨浏览器的
div 遮挡 select 、 iframe、 object控件、flash 的解决方案 哪里有呢? :( |
|
| 返回顶楼 | |
|
时间:2006-12-05
fins 写道 我一直在找一个完美的 简便的 跨浏览器的
div 遮挡 select 、 iframe、 object控件、flash 的解决方案 哪里有呢? :( 不可能 |
|
| 返回顶楼 | |
|
时间:2006-12-05
恩 我也觉得不可能 因为我苦苦寻觅了很久
而且各个开源的ajax ui组件中的“用div模拟模式窗口”代码我也都看了 都不行 所以 关于模窗口的很多问题我们还是应该好好思考 而不应该把解决问题的希望一味的寄托在“div”上 |
|
| 返回顶楼 | |
|
时间:2006-12-05
各位的研究、分析得不错。
发句牢骚话,WEB上要搞点复杂的界面,真不是那么容易的,乱啊。但也得干哪。 |
|
| 返回顶楼 | |











