1. 程式人生 > >模式視窗window.open造成Session丟失的解決方法

模式視窗window.open造成Session丟失的解決方法

從 HTML 模式或無模式對話方塊可能沒有開啟同一程序中 InternetExplorer 視窗中開啟,因此模式視窗中呼叫 window.open()方法開啟具體頁面,可能造成session 丟失.例如:主窗體a.aspx,點選按鈕時採用window.showModalDialog,開啟彈出窗體b.aspx,b.aspx為模式窗體,然後在b.aspx窗體中再用window.open方式開啟窗體c.aspx時,session會丟失。

   解決方法:
      思路: 呼叫 a.aspx window 的 open 方法開啟

      a.aspx 中window.showModalDialog 呼叫方法傳遞 dialogArguments屬性為 window 物件
      window.showModalDialog("b.aspx",window,"....") ;

      b.aspx 中
      var openobj = window;
if(typeof(window.dialogArguments) == "object")
{
    openobj =  window.dialogArguments;
}
 openobj.open("c.aspx");

   這樣處理 c.aspx中 Session就不會丟失了