模式視窗window.open造成Session丟失的解決方法
阿新 • • 發佈:2019-02-11
從 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就不會丟失了
解決方法:
思路: 呼叫 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就不會丟失了