[工作问题总结]window.open导致IE自动关闭问题总结[1]
2013-05-27 21:35
477 查看
------------------------------ASP.Net+Android+IO开发 .Net培训 期待与您交流!------------------------------
最近在写SSO统一入口登入,其中就遇到了window.open的链接页面的问题,在此总结一下,希望可以帮助遇到同样问题的朋友...
一.先了解下window.open
window.open(pageURL,name,parameters)
pageURL 为子窗口路径
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)
locations[地址字段] menubar[菜单栏] resizable[可调节尺寸] scrollbars[滚动条] status[状态栏] titlebar[标题栏] toolbar[浏览器的工具栏]
二.导致浏览器自动关闭
我之前也用过window.open,但头一次测试告诉我说,按钮一点击(点击方法包含window.open)页面就关闭无法测试.很是无语.
于是我就在网上找导致浏览器自动关闭的原因,如果说你的客户可以接受IE设置的话,可以这样做
工具-->Internet选项-->隐私-->将启用弹出窗口阻止程序前面的勾勾去掉
或者checkbox勾上,则点击设置加入允许的站点即可
我经过这番设置之后,可以让测试打开页面了,但我自己发现,公司另一系统也用到了window.open但却可以在测试人员的机器上打开且无需我以上的设置,于是我抑郁了,同样是window.open啊,为啥?
三.跟前台调用和后台调用有关
先说下我当前代码的按钮调用方法
<asp:Button ID="btnProLOG" runat="server" OnClick="BtnProClick" CommandName="LOG8K" />
看的出来吧,跑的后台...
然后的后台是
/// <summary>
/// 选择产品
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnProClick(object sender, EventArgs e)
{
var button = sender as System.Web.UI.WebControls.Button;
try
{
var type = (button == null) ? "" : button.CommandName.ToUpper();
Session["ProType"] = type;
Page.ClientScript.RegisterStartupScript(Page.GetType(), "loginportal", "<script>funOpenFrame()</script>");
}
catch (Exception ex)
{
Logger().Error(" BtnProClick Exception Message: " + ex.Message);
}
}
看的出来吧
Page.ClientScript.RegisterStartupScript(Page.GetType(), "loginportal", "<script>funOpenFrame()</script>");
此句又调用了前台,先不要点评我这段恶心的代码...
在前台funOpenFrame里
function funOpenFrame() {
window.open("LoginPortalFrame.aspx", '', 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no');
window.opener = null;
window.open('', '_self');
window.close();
}
就这样写的,此写法就会造成IE浏览器自动关闭,且通过我前面一项说的设置,可以实现不关闭.
经过我仔细仔细仔细仔细看过别人写的不会造成IE自动关闭的代码后发现,他和我唯一的区别是,他没有调用后台.我的第一反应是应该不会吧...但死马当活马医吧,我试着改成只调用前台....
<img alt="" id="ImageBtn_ProLOG" runat="server" src="~/resources/themes/images/picture/btnProLOG.jpg"
onclick="funOpenFrame('LOG8K')" class="btnProLOG" />
.....然后
居然还真不会自动关闭了...好吧 我无语拉....
顺便说下,其中我还尝试在前台的ajax方法里使用window.open也会自动关闭...
------------------------------ASP.Net+Android+IO开发 .Net培训 期待与您交流!------------------------------
最近在写SSO统一入口登入,其中就遇到了window.open的链接页面的问题,在此总结一下,希望可以帮助遇到同样问题的朋友...
一.先了解下window.open
window.open(pageURL,name,parameters)
pageURL 为子窗口路径
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)
locations[地址字段] menubar[菜单栏] resizable[可调节尺寸] scrollbars[滚动条] status[状态栏] titlebar[标题栏] toolbar[浏览器的工具栏]
二.导致浏览器自动关闭
我之前也用过window.open,但头一次测试告诉我说,按钮一点击(点击方法包含window.open)页面就关闭无法测试.很是无语.
于是我就在网上找导致浏览器自动关闭的原因,如果说你的客户可以接受IE设置的话,可以这样做
工具-->Internet选项-->隐私-->将启用弹出窗口阻止程序前面的勾勾去掉
或者checkbox勾上,则点击设置加入允许的站点即可
我经过这番设置之后,可以让测试打开页面了,但我自己发现,公司另一系统也用到了window.open但却可以在测试人员的机器上打开且无需我以上的设置,于是我抑郁了,同样是window.open啊,为啥?
三.跟前台调用和后台调用有关
先说下我当前代码的按钮调用方法
<asp:Button ID="btnProLOG" runat="server" OnClick="BtnProClick" CommandName="LOG8K" />
看的出来吧,跑的后台...
然后的后台是
/// <summary>
/// 选择产品
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnProClick(object sender, EventArgs e)
{
var button = sender as System.Web.UI.WebControls.Button;
try
{
var type = (button == null) ? "" : button.CommandName.ToUpper();
Session["ProType"] = type;
Page.ClientScript.RegisterStartupScript(Page.GetType(), "loginportal", "<script>funOpenFrame()</script>");
}
catch (Exception ex)
{
Logger().Error(" BtnProClick Exception Message: " + ex.Message);
}
}
看的出来吧
Page.ClientScript.RegisterStartupScript(Page.GetType(), "loginportal", "<script>funOpenFrame()</script>");
此句又调用了前台,先不要点评我这段恶心的代码...
在前台funOpenFrame里
function funOpenFrame() {
window.open("LoginPortalFrame.aspx", '', 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no');
window.opener = null;
window.open('', '_self');
window.close();
}
就这样写的,此写法就会造成IE浏览器自动关闭,且通过我前面一项说的设置,可以实现不关闭.
经过我仔细仔细仔细仔细看过别人写的不会造成IE自动关闭的代码后发现,他和我唯一的区别是,他没有调用后台.我的第一反应是应该不会吧...但死马当活马医吧,我试着改成只调用前台....
<img alt="" id="ImageBtn_ProLOG" runat="server" src="~/resources/themes/images/picture/btnProLOG.jpg"
onclick="funOpenFrame('LOG8K')" class="btnProLOG" />
.....然后
居然还真不会自动关闭了...好吧 我无语拉....
顺便说下,其中我还尝试在前台的ajax方法里使用window.open也会自动关闭...
------------------------------ASP.Net+Android+IO开发 .Net培训 期待与您交流!------------------------------
相关文章推荐
- [工作问题总结]window.open导致IE自动关闭问题总结[2]
- Windows XP SP2的WRSF安全特性导致IE使用window.open和window.showModalDialog的status=no无法关闭状态栏
- window.open 打开的子窗口 闪一下即自动关闭问题
- 解决VS2010打开Web页面时经常由于内存较低而导致VS2010自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- (转)关闭WordPress自动加载的Open Sans字体,总是连接googleapi.com,导致打开wordpress很慢
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- java项目用window.open(url)后,url会自动加上项目全路径问题解决
- window.open()在IE中打开新窗体有时候打不开的问题
- window.open 缓存而导致页面不刷新问题
- Android Activity使用Dialog样式导致点击空白处自动关闭的问题解决
- 解决VS2010批量替换时经常由于内存较低而导致VS2010自动关闭的问题
- window.open()使用方法以及传参数的问题总结
- IE7下window.open()的一个小问题
- 解决ie的window.open的referer丢失问题。
- form中的button按钮在IE11中自动提交表单问题导致弹出框关闭之后表单被重置
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题