关于showmodaldialog的问题处理
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
1、showmodaldialog中的数据显示。
起因:
在IE6中showmodaldialog打开的对话框所加载的数据不是最新的数据。对话框中的内容会一直与第一次打开的内容相同,即使服务器上这些数据已经修改或是删除,对话框仍然会显示原来的内容。
实现要求:
对话框每次打开都显示最新的正确数据,及时影响数据的变化。
解决方案:
造成此问题的原因是因为IE6的缓存,第一次打开后对话框内容会放入缓存,再次打开时IE就会加载缓存中的内容而不会重新请求新的页面。直接有效的办法是在IE选项中清空缓存,但程序员是没权力这样要求用户的。因此,解决的办法是每次打开对话框时使用不同的URL。在要打开页面的URL后加一个参数,只要保证这个参数在每次打开对话框时是不同的,IE就会重新请求页面获取新的数据了。
提示:URL后的参数可以用时间或是随机数实现。
2、在关闭showmodaldialog的对话框时进行一些动作。
起因:
在很多时候希望关闭对话框时进行一些处理,这里指的是用对话框窗体上的关闭按钮进行关闭的情况。
实现要求:
点击关闭后执行相应代码,并关闭对话框。
解决方案:
在window.onunload()中添加一个处理过程,就可以在此过程中实现要完成的动作了。
具体的做法是在脚本标签中添加如下代码:
window.onunload()=function(){}
提示:这里不能用window.close()。在IE6和FF3测试用window.close()时,其中的代码并没有执行。