论坛首页 AJAX版

js打开模态窗口的问题

浏览 3992 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2006-12-05
js里打开模态窗口都知道使用window.showModalDialog()方法,但是该方法有许多的不便之处,
比如
1 打开的子窗口不能得到window.openner,因此子窗口无法访问父窗口数据. 如果要传递数据的话, 只能在Dialog窗口中用window.returnvalue.
2 Dialog窗口中提交任何数据, 结果都会提交到一个新得窗口中去.
3 window.close()的方法无法关闭Dialog,需要触发事件才可以.
因此我使用了window.open()方法,但是如何使他成为模态的呢?
   
时间: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特有的,最好不要用,可以用层模拟模态窗口
   
0 请登录后投票
时间:2006-12-05
呵呵,你说的这些问题都有解决方法..
1.showModalDialog打开的窗口想访问父窗口的数据的话
window.showModalDialog("filename.htm",window)

在子窗体中用window.dialogArguments得到就是你的父窗体对象,这样就能访问到父窗体数据了.
2.在子窗体应用的文件的head区之间添加
<base target="_self">

这样在打开的子窗体中的链接仍然会在子窗体刷新,而不会跑到新窗口。。
3.配合上面这句以后,window.close()就可以关闭打开的Dialog了。

---------------------
多研究下好了
   
0 请登录后投票
时间:2006-12-05
有些情况用showModalDialog打开的窗口文件再套用iframe才能做出来。
   
0 请登录后投票
时间: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 两者不一致 所以就不行

瞎分析 见笑了 呵呵
   
0 请登录后投票
时间:2006-12-05
用div模拟模式窗口要好得多 网上类似的小js lib有很多
   
0 请登录后投票
时间:2006-12-05
我一直在找一个完美的 简便的 跨浏览器的
div 遮挡 select 、 iframe、 object控件、flash 的解决方案 哪里有呢?
:(
   
0 请登录后投票
时间:2006-12-05
fins 写道
我一直在找一个完美的 简便的 跨浏览器的
div 遮挡 select 、 iframe、 object控件、flash 的解决方案 哪里有呢?
:(




不可能
   
0 请登录后投票
时间:2006-12-05
恩 我也觉得不可能 因为我苦苦寻觅了很久
而且各个开源的ajax ui组件中的“用div模拟模式窗口”代码我也都看了 都不行
所以 关于模窗口的很多问题我们还是应该好好思考
而不应该把解决问题的希望一味的寄托在“div”上
   
0 请登录后投票
时间:2006-12-05
各位的研究、分析得不错。
发句牢骚话,WEB上要搞点复杂的界面,真不是那么容易的,乱啊。但也得干哪。
   
0 请登录后投票
论坛首页 AJAX版

跳转论坛:
JavaEye推荐