zoukankan      html  css  js  c++  java
  • 解决模式对话框和window.open打开新页面Session会丢失问题

    模式对话框页面通过超链接(_blank类)或window.open打开新页面Session会丢失
    查资料后解决方法如下:
    在使用showModalDialog时会经常出现Session失效的问题,尤其是在这样的使用情况下:
    首先window. showModalDialog,然后执行任何的创建新窗口有关的操作,比如<a href=”xxxx” target=”_blank”> ,或者在模态窗口中调用window.open,或者通过内建帧打开某一页面,这种情况下都有可能造成Session丢失。
    (可以先随便打开一个IE窗口,然后再新开一个IE窗口,然后登录OA进行上述有关操作,都有可能造成session丢失)
          解决方法是使用父窗口的,也就是打开模态窗口的Window对象来进行新建操作。
    具体步骤如下:
    比如在原来的主窗口的列表页面有如下语句:
    window.showModalDialog(url,’’,’status=no;dialogWidth=' + iwidth + 'px;dialogHeight=' +
    iheight + 'px;center=yes;help=no;')
    把它修改成
    window.showModalDialog(url,window,’status=no;dialogWidth=' + iwidth + 'px;dialogHeight=' + iheight + 'px;center=yes;help=no;')
    也就是说原来第二个参数是什么都不填的,现在填window。
    假设模态窗口中调用其他页面的
    <a href="download.jsp?accessoryId=<%=zhengwen.getId()%>" target="_blank"> <%=zhengwen.getOldFileName()%> </a>
    需要做如下修改
    首先增加一个客户端函数,用于获得传入的主窗口window对象
    <script language="javascript">
    liums(刘明生) 13:56:57
          function openUrl(urlstr)
          {
                  var openobj = window;
                  if(typeof(window.dialogArguments) == 'object')
                  {
                        openobj = window.dialogArguments;
                   }
                  openobj.open(urlstr,"_blank");
          }
          </script>
    然后修改链接的打开方式
    <a href="#" onClick="openUrl('download.jsp?accessoryId=<%=zhengwen.getId()%>')" ><%=zhengwen.getOldFileName()%
    >< /a>
    这样Session就不会丢失了!

  • 相关阅读:
    cocos2dx图片加密解密(npk方式)
    C#吾日三省吾身
    重写窗体的Enter事件(可对窗口的Enter事件做自己想做的事情)
    c#中显示Excel控件使用说明
    c# datagridview合并单元格
    AxSpreadsheet属性与方法说明
    c#实现货币转中文大写类
    jquery常用的插件1000收集
    [原创]站长自助平台一个帮助站长全自动实现一键采集、发贴(伪原创)、会员注册、交换连接的平台
    c#操作XML常用方法
  • 原文地址:https://www.cnblogs.com/wangyt223/p/2689180.html
Copyright © 2011-2022 走看看