用div替代模态窗口
2007-06-08 10:59
176 查看
一直用惯了弹出modal窗口,总觉得用url传值和关闭窗口后刷新父窗体都用的很别扭.今天项目中恰好又出现了以前类似的情况,想图个新鲜使用下弹出层来作,这样对于页面的控制逻辑也清晰了很多.
网上搜索了一篇文章,代码和注释都还不错,虽然没具体使用,不过先copy下来,等着测试咯.
作者是园子里面的 jecray兄弟
进一步的使用模式窗口可以发现session的丢失总是便随页面的刷新
1.在普通页面中弹出模式窗口且进行new dialog()操作时 会造成该进程中所有页面session的丢失
2.在模式窗口嵌套使用时 弹出的模式窗口并不会使父模式窗口的session丢失 但是会取不到父模式窗口的值
3.在弹出的模式窗口中使用js脚本需要验证表单时 如果出现return true or false之类的语句,会造成模态窗口session的丢失。
用showModalDialog经常出现这样那样奇怪的问题,因此最好少用showModalDialog。替代的方法就是用DIV来模拟实现模式窗口相同的功能。
html代码如下
<div id="id2"> <!--这个是弹出的层-->
<table height="100" width="200">
<tr>
<td>
<div id="ShowMSG"></div>
</td>
</tr>
<tr>
<td align="center"><input class="Button60" onclick="divhide()" type="button" value="关闭" name="btnDo">
</td>
</tr>
</table>
</div>
<div id="id1">这里是弹出层后的背景 可以不放内容</div>
在Css中设置弹出窗口的颜色背景透明度等
js代码如下 可以对层进行拖拽 随意进行移动
self.onError=null;
currentX = currentY = 0;
whichIt = null;
lastScrollX = 0; lastScrollY = 0;
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1: 0;
<!-- STALKER CODE -->
<!-- /STALKER CODE -->
<!-- DRAG DROP CODE -->
<!-- DRAG DROP CODE -->
if(NS || IE) action = window.setInterval("heartBeat()",1)
在页面中调用divshow()就可以弹出仿照的模式窗口,这样就不会出现丢失session的问题,而且视觉效果很好。
网上搜索了一篇文章,代码和注释都还不错,虽然没具体使用,不过先copy下来,等着测试咯.
作者是园子里面的 jecray兄弟
拒绝session丢失 利用DIV层实现对模态窗口的模拟
使用window.showModalDialog进行信息的提示,相当方便,也容易控制外观和布局。但是存在一个严重的问题,就是Session丢失。当在A页面进行showModalDialog时,弹出的模态窗口open新页面或new dialog()时,会得不到A页面中的Session,这样就严重地限制了他的使用范围。进一步的使用模式窗口可以发现session的丢失总是便随页面的刷新
1.在普通页面中弹出模式窗口且进行new dialog()操作时 会造成该进程中所有页面session的丢失
2.在模式窗口嵌套使用时 弹出的模式窗口并不会使父模式窗口的session丢失 但是会取不到父模式窗口的值
3.在弹出的模式窗口中使用js脚本需要验证表单时 如果出现return true or false之类的语句,会造成模态窗口session的丢失。
用showModalDialog经常出现这样那样奇怪的问题,因此最好少用showModalDialog。替代的方法就是用DIV来模拟实现模式窗口相同的功能。
html代码如下
<div id="id2"> <!--这个是弹出的层-->
<table height="100" width="200">
<tr>
<td>
<div id="ShowMSG"></div>
</td>
</tr>
<tr>
<td align="center"><input class="Button60" onclick="divhide()" type="button" value="关闭" name="btnDo">
</td>
</tr>
</table>
</div>
<div id="id1">这里是弹出层后的背景 可以不放内容</div>
在Css中设置弹出窗口的颜色背景透明度等
js代码如下 可以对层进行拖拽 随意进行移动
self.onError=null;
currentX = currentY = 0;
whichIt = null;
lastScrollX = 0; lastScrollY = 0;
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1: 0;
<!-- STALKER CODE -->
<!-- /STALKER CODE -->
<!-- DRAG DROP CODE -->
<!-- DRAG DROP CODE -->
if(NS || IE) action = window.setInterval("heartBeat()",1)
在页面中调用divshow()就可以弹出仿照的模式窗口,这样就不会出现丢失session的问题,而且视觉效果很好。
相关文章推荐
- 用div替代模态窗口
- 用div替代模态窗口
- 用div替代模态窗口
- 使用div仿javascript模态窗口
- 用css+div+javascript模拟模态窗口(可拖动)
- JQuery Dialog(JS 模态窗口,可拖拽的DIV)
- jquery div模态窗口
- java Web使用div模拟模态窗口,可以自定义样式--------------------subModal
- JQuery Dialog(JS 模态窗口,可拖拽的DIV)
- JQuery Dialog(JS模态窗口,可拖拽的DIV)
- div 弹出div模态窗口 js+css
- 在ASP.NET中使用IFRAME+DIV,可以实现在同一页面使用弹出(模态)窗口
- JQuery Dialog(JS模态窗口,可拖拽的DIV)
- 如何做DIV模态窗口
- DIV 模拟模态窗口
- div模态窗口
- 【JSP】模态窗口DIV显示层
- 一个自定义模态窗口的js类(用div实现)
- (精)在ASP.NET中使用IFRAME+DIV,可以实现在同一页面使用弹出(模态)窗口
- 使用div仿javascript模态窗口