精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-15
模式窗口太过于局限性,所以我研究了一个完全可以用window.open()代替window.showModalDialog()的方法,其资料贴在了下面:
有两个页面,一个是调用页面---main.html,一个是被调用页面---modalWindow.html main.html --------------------------------------------------------------------------------------------------------------------------------------------
window.onfocus=function (){ if(newWin){ window.document.onfocus=function (){
window.document.onclick=function (){
window.document.ondblclick=function (){
</script>
---------------------------------------------------------------------------------------------------------------------------------- modalWindow.html ------------------------------------------------------------------------------------------------------------------------------------ sub window!!!!
在这个页面modalWindow.html中的方法可以调用父窗口的方法 其用法是 opener.functionName(param);
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-09-15
我还没试过,但初步判断这样不够,因为window.onfocus=..等方式是bubble的,被点击的实际元素如果有onclick就先处理了,不能真正等同于modal
|
|
返回顶楼 | |
发表时间:2007-09-17
哦,谢谢,请问楼上的朋友,这样的情况该怎么处理呢,请多指教.....
|
|
返回顶楼 | |
发表时间:2007-09-17
一种思路吧:因为要阻止原窗口响应各种事件,可以把所有的事件回调都解除绑定,modal窗口关闭后再恢复;或者利用某些框架性代码,代理事件回调,代理时判断是否有modal窗口存在...
|
|
返回顶楼 | |
发表时间:2007-09-18
而且还有一种情况是比较容易忽略的,不知道你考虑没有:
父窗口弹出模态窗口A,A再弹出模态窗口B,如此多级模态窗口,关闭窗口也只能反向一层层关闭。 |
|
返回顶楼 | |
发表时间:2007-09-20
这种模拟是不会成功的。。。
你可以试试快速点击父窗口,JS响应速度没那么快,很容易就点出问题了。 真正能够解决Dialog问题的方案只有一个,那就是Float Iframe,用Iframe代替Window.open(),用DIV来做遮罩,控制模态。而且,这样做还有另外一个好处,那就是处理窗口间的关系变得异常容易。用户也不容易ganjue到自己被打扰了——因为你可以让Iframe加载完成时再显示出来,甚至可以加上一些特效,使得Iframe的浮出更加柔和自然。 |
|
返回顶楼 | |
发表时间:2007-09-20
可以看一下,我以前写的一个使用html弄出来的modaldialog, http://hi.baidu.com/afcn007/blog/item/fe05e91bbfa774d7ad6e7515.html 有2个button,函数当中传入2个function当参数
|
|
返回顶楼 | |
发表时间:2007-09-22
open() 不可能代替 showModalDialog()
这样做是钻死胡同牛角尖. 唯一方法:可以通过iframe或DIV在同一个Window实现 http://www.laputac.com/tech/ |
|
返回顶楼 | |
发表时间:2007-09-22
open后再给原窗口加层遮罩
|
|
返回顶楼 | |
发表时间:2007-09-25
不会吧,我见到更多的讨论是如何用showModalDialog() 代替open()...
|
|
返回顶楼 | |