不建议使用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);
}
Response.Write("<script type='text/javascript'>window.open('target.aspx?Id=xxx');</script>");
按照楼上的方法尝试下吧!
Response.Redirect或Server.Transfer方法不会打开新页面,在当前窗口中打开。
建议使用ScriptManager注册脚本。