<iframe marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗口打开所指定的 URL 地址的。但是,如果仔细分析一下,如果设置 form 元素的 target 属性,还是有办法打开新窗口的。下面就是可以采用的两种方法。
方法一:在服务器端设置 target 属性,这个方法也非常适用于客户端不支持脚本的情况。代码如下:
<%@PageLanguage="C#"AutoEventWireup="true"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<scriptrunat="server">
protectedvoidPage_Load(objectsender,EventArgse)
{
form1.Target="_blank";
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Redirect("http://dotnet.aspx.cc");
}
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title></title>
</head>
<bodyid="b"runat="server">
<formid="form1"runat="server">
<asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="打开新窗口或者新Tab"/>
</form>
</body>
</html>
办法二:采用客户端脚本的方法设置 target 属性。代码如下:
<%@PageLanguage="C#"AutoEventWireup="true"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<scriptrunat="server">
protectedvoidPage_Load(objectsender,EventArgse)
{
Button1.Attributes.Add("onclick","this.form.target='_newName'");
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Redirect("http://dotnet.aspx.cc");
}
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title></title>
</head>
<bodyid="b"runat="server">
<formid="form1"runat="server">
<asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="打开新窗口或者新Tab"/>
</form>
</body>
</html>
上面两种方法中的 target 属性可以采用任何合法的名称,但要注意,如果相同名称的窗口已经打开,则新窗口会在已经存在名称的窗口里打开。
更新:如果需要设置弹出窗口的宽度和高度,可以修改为下面的方法:
<%@PageLanguage="C#"AutoEventWireup="true"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<scriptrunat="server">
protectedvoidPage_Load(objectsender,EventArgse)
{
stringWindowName="win"+System.DateTime.Now.Ticks.ToString();
Page.RegisterOnSubmitStatement("js","window.open('','"+WindowName+"','width=600,height=200')");
form1.Target=WindowName;
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Redirect("http://dotnet.aspx.cc");
}
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title></title>
</head>
<bodyid="b"runat="server">
<formid="form1"runat="server">
<asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="打开新窗口或者新Tab"/>
</form>
</body>
</html>
另外一种弹出的方法可以参见老外的文章:
http://weblogs.asp.net/infinitiesloop/archive/2007/09/25/response-redirect-into-a-new-window-with-extension-methods.aspx
分享到:
相关推荐
如何用Response.Redirect方法传递汉字 如何用Response.Redirect方法传递汉字 .doc
所以除了在js中用window.open或是给A标签添加target属性之外,在后台似乎不能来打开新的页面,其实不然,通过设置form的target属性同样可以让Response.Rederect所指向的url在新的窗口打开。下面用三种方法来实现。 1...
Response.Redirect 采用客户端脚本方法设置target 属性
页面的跳转问题 主要包括Response.Redirect Server.Transfer的区别
文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf
Jsp利用response.sendRedirect、cookie传参
result = response.read() result.decode('utf-8') jsonData = json.loads(result) 以上这篇python使用response.read()接收json数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多...
jsp response.sendRedirect不跳转的原因分析及解决.docx
如果你读过很多行业杂志和 ASP.NET 示例,你会发现,大多数人使用 Response.Redirect 将用户引导到另一个页面,而另一些人好像偏爱于神秘的 Server.Transfer,那么,这二者有什么区别? Response.Redirect ...
例外是由 Response.Redirect 方法产生的,虽然知道是线程的问题, 但是不知为何 Redirect会出现这样的错误,以前是没有碰到过,转移到 Asp.net 2.0 开发就遇上了。 在狂Google了一下后,才发现MS早就发现了这个问题...
( response.setHeader()下载中文文件名乱码问题
Response.Write 后连接Response.Redirect ,则Response.Write无法显示,直接跳转入Response.Redirect 的页面。 解决方式: Response.Write([removed]alert('成功修改'); [removed].href='index.aspx'...
response.setContentType()中有关文件上传的种类说明。
通过endResponse = false 在Response.Redirect将会解决这个问题. 但这样做会导致应用程序出现一些奇怪的问题。因为应用程序将假设在 Response.Redirect 将在当前页面停止执行.除此之外你需要处理一些安全隐患,因为...
Request和Response.txt 了解他们的作用 看了有益无害的东西~~
response.setHeader,页面初始化,内存设置等
1.Response.Redirect("XXX.aspx",true)——直接转向新的页面,原窗口被代替; 2. Response.Write("<script>window.open(XXX.aspx','_blank')</script>")——原窗口保留,另外新增一个新页面;
NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2336132