首页 新闻 搜索 专区 学院

关于.net后台跳转在IE8出现的问题,在线等

0
悬赏园豆:10 [已关闭问题]

我在后台调用

Response.Write("<script language='javascript'>window.open('xxx.aspx?id="+id+",'_blank');</script>");

这样的方法跳转打开新页面,结果在IE8里面不跳转,这是怎么回事,我在IE7中都可以跳转的。IE6也存在这样的问题,各位大侠说说。还有能不能提供个跳转打开新窗口的方法。

如果使用Response.Redirect("xxx.aspx?id="+id);这个跳转是不打开新窗口啊!

something的主页 something | 初学一级 | 园豆:5
提问于:2010-04-22 15:46
< >
分享
其他回答(3)
0

不建议使用Response.Write输出脚本!我给你发个函数,传入当前页的Page对象及其它相关参数及可。

/// <summary>
/// 功能:打开一个IE窗口(无标题栏、工具栏、地址栏等)。
/// 输入:page   网页中的Page对象
///       URL    欲打开对话框中的网页地址
///       Width  打开的对话框的宽
///       Height 打开的对话框的高。
///       Left   打开的对话框的位置之左端
///       Top    打开的对话框的位置之上端
/// 输出:无。
/// </summary>
public static void OpenIEWindow(System.Web.UI.Page page, string URL, int Width, int Height, int Left, int Top)
{
    string strScript;
    string strKey;
    int i;
    //脚本块的内容
    strKey = string.Format("width={0},height={1},left={2},top={3},directories=no,location=no,menubar=no,status=no,toolbar=no,resizable=yes", Width, Height, Left, Top);
    strScript = "<script language=javascript>\n";
    strScript += "    window.open(\"" + URL + "\",null,\"" + strKey + "\");\n";
    strScript += "</script>";
    //注册脚本块的Key
    strKey = System.DateTime.Now.ToString();
    //循环,直至找到某个没被注册过的Key
    for (i = 0; i < 10000; i++)
        if (!page.ClientScript.IsClientScriptBlockRegistered(strKey + i.ToString()))
            break;
    page.ClientScript.RegisterClientScriptBlock(page.GetType(), Guid.NewGuid().ToString(), strScript);
}

Astar | 园豆:40805 (高人七级) | 2010-04-22 16:34
谢谢,我先试试这个方法
支持(0) 反对(0) something | 园豆:5 (初学一级) | 2010-04-22 16:58
你想弄一个不重复的Key,把DateTime.Now的值和一个随机数散列一下就好了....10000个循环....
支持(0) 反对(0) vons | 园豆:1033 (小虾三级) | 2010-04-23 09:33
@vons:不是10000个循环,是从1开始,没有就Break了。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-05-07 15:36
0

Response.Write("<script type='text/javascript'>window.open('target.aspx?Id=xxx');</script>");

lifqing | 园豆:350 (菜鸟二级) | 2010-04-22 18:14
0

按照楼上的方法尝试下吧!

/aiq浪子飞龙 | 园豆:1189 (小虾三级) | 2010-04-25 15:10
0

Response.Redirect或Server.Transfer方法不会打开新页面,在当前窗口中打开。

建议使用ScriptManager注册脚本。

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2010-05-07 15:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册