工作总结33 财务系统在IE6下每打开一个新窗口就会丢失session

来源:互联网 发布:好的名人传记推荐 知乎 编辑:程序博客网 时间:2024/04/30 08:30

 会话问题:

      财务系统在IE6 sp03下每打开一个新窗口(target='_blank')就会丢失session ,只要是新窗口都会出现登录超时提示,说明新窗口里没有取到session这是为什么呢,改如何去解决呢?

 解决方案:

Session ID会保存在浏览器的Cookie中,而IE6,每次弹出一个窗体的时候,都相当于启动了一个独立的IE浏览器,所以第一个窗体的Cookie和第二个窗体的Cookie不在一个存储区域,所以会导致索引不到服务器端的Session,这个没有办法。

解决的方式有两个:一个是弹出模式窗体(用JS来模拟);第二个就是不弹出窗体了。 

       我采用的是第二种解决方式,不用弹出窗体,而是使用了iframe的方式,代码如下:

             if(!window._commonIframe){
document.body.insertAdjacentHTML("beforeEnd","<iframe name='commonIframe'                                        style='display:none;position:relative;'></iframe>");
window._commonIframe=true;
        }
        obj.target="commonIframe";
        obj.href=url;    

原创粉丝点击