移动项目开发笔记(模式窗口,非模式窗口用window.open造成Session丢失的解决方法)
2008-11-04 22:58
731 查看
项目中需要在一个页面弹出一个模式窗口,且在模式对话框中用window.open方式弹出新的窗体。当我在模式窗体中定义的一个Session时候,在用window.open方式打开的页面中无法访问到页面设置的Session的值,也就是说造成了Session丢失.
找了一下原因如下;
在IE中,session有效的窗口包括:
1.建立Session对象只的窗口。
2.建立Session对象的窗口中新开链接的窗口。
在IE中,session对象无效的窗口包括:
1.直接启动IE浏览器的窗口。
2.不是在建立Session对象的窗口中新开链接的窗口。
所以在模式窗口或者非模式窗口打开新窗口会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就不会丢失了。
找了一下原因如下;
在IE中,session有效的窗口包括:
1.建立Session对象只的窗口。
2.建立Session对象的窗口中新开链接的窗口。
在IE中,session对象无效的窗口包括:
1.直接启动IE浏览器的窗口。
2.不是在建立Session对象的窗口中新开链接的窗口。
所以在模式窗口或者非模式窗口打开新窗口会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就不会丢失了。
相关文章推荐
- 模式窗口window.open造成Session丢失的解决方法
- 模式窗口window.open造成Session丢失的解决方法
- 【转】模式窗口window.open造成Session丢失的解决方法
- 模式窗口window.open造成Session丢失
- 解决模式对话框和window.open打开新页面Session会丢失问题
- asp.net和php中用window.open打开的窗口session丢失的解决办法
- 解决模式对话框和window.open打开新页面Session会丢失问题
- asp.net和php中用window.open打开的窗口session丢失的解决办法
- asp.net和php中用window.open打开的窗口session丢失的解决办法
- 解决模式对话框和window.open打开新页面Session会丢失问题
- 对于window.open会丢失Session的一种变通的解决方法【引自:CSDN】
- javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
- 解决弹出的窗口window.open会被浏览器阻止的问题(自定义open方法)
- asp.net网站项目开发,删除文件夹后Session丢失问题解决
- 打开新窗口的window.open使用方法以及最大化等问题解决方法汇总
- showModalDialog与window.open造成session丢失的问题
- Ajax请求成功后新开窗口window.open()被拦截解决方法
- 解决弹出的窗口window.open会被浏览器阻止的问题(自定义open方法)
- javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
- ajax打开新窗口window.open()被拦截的解决方法