從 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就不會丟失了