在IE6中,如果在A.jsp中使用window.showModalDialog()打开B.jsp,并在B.jsp中使用window.open()打开C.jsp,这时session数据可能会丢失。
解决的方法有两种:
1.在A.jsp执行showModalDialog(),方法时,将A的window对象通过参数传到B.jsp。
window.showModalDialog(URL, Awindow, .....);
之后,在B.jsp中使用Awindow打开C.jsp。
var win = window.dialogArguments;
win.open(.....);
2.B、C两个页面都使用showModalDialog来打开。
在不同的情况下可以选择适合的方法,模态窗口的这个问题在IE8+的版本中好像已经解决了(IE7没测试),但IE6还有不少人在用,因此遇到这种情况时需要注意测试环境。