如何在回复中使用Target=_blank.redirect
本文关键字:Target blank redirect 回复 | 更新日期: 2023-09-27 18:21:23
我不一定要使用response.redirect,但这就是我所拥有的。我想在新窗口中打开选定的链接。我该怎么做?
context.Response.Redirect(ConfigurationManager.AppSettings["URL"] + ext );
答案很简单。浏览器是唯一可以打开新窗口的东西。
你可以做的是在响应中发送一大块html,其中有一个链接,链接的url为href,target="_blank",并在表单上加载一大块javascript,以伪造点击。如果这不起作用,那么使用window.open(url);
response.write("<script>");
response.write("window.open('page.html','_blank')");
response.write("</script>");
您正试图从服务器端完成客户端任务,因此需要进行一些黑客攻击。
一种选择是发回一个只有一点JavaScript的页面,然后它将处理重定向。
这不是特别干净,但关于呢
Response.Write("<script>window.open('http://www.somesite.com/','_blank');</script>");
如果您只是在处理导航,您可以尝试ASP:Hyperlink控件,而不是按钮,这样在呈现页面时为浏览器指定目标:
protected void Page_Load (object sender, EventArgs e)
{
lnkViewPage.NavigateURL = sURL;
lnkViewPage.Target = "_blank";
}
当然,离开更礼貌。单独使用Target,因为在这种情况下,可以右键单击超链接,并且可以从上下文菜单中选择"在新页面/选项卡中打开"。
使用按钮的OnClientClick属性:
<asp:Button runat="server" ID="cmd_Test" onclientclick="window.open('YourUrl')" />
使用Response.Redirect()
无法做到这一点
好吧,你可以在Response.Write
中使用一个简单的Javascript来完成这项工作
Response.Write("<script>window.open('page.html','_blank')</script>");
SqlConnection con = new SqlConnection("Data Source=.; uid=sa; pwd=sandesh;database=BeautyJunction;");
string strSQL = "Select BenificiaryType,BenificiaryName,DisttCode,IFSC,AC_No from BenificiaryMaster";
SqlDataAdapter dt = new SqlDataAdapter(strSQL, con);
DataSet ds = new DataSet();
dt.Fill(ds, "UserDetail");
string dat = String.Format("{0: MM_dd_yyyy}", DateTime.Now);
//string dat = Convert.ToString(DateTime.UtcNow.ToShortDateString());
sb.Append("~/Folder1/BenificiaryMaster_file_1" + dat + ".xml");
string path = sb.ToString();
ds.WriteXml(Server.MapPath(path));
LabelMessage.Text = "Your XML file has Been created with name 'BenificiaryMaster_file_1" + dat +"' <a target='_blank' href=Folder1/BenificiaryMaster_file_1.xml>click here</a> to show Benificiary record file";
//GridView1.DataBind();
如果我理解正确,您希望能够在新窗口中打开重定向的URL,但可能会在同一窗口中保留原始目标。
不幸的是,您无法做到这一点,因为重定向是由服务器而不是浏览器提供的。您可能会重定向到一个页面,该页面包含一些基于URL查询字符串参数打开新窗口的脚本。但如果你不小心的话,这会让你面临XSS。
用动态编程的超链接怎么样?想象一下。asp超链接,当你点击时会打开一个新窗口,可能没有滚动条,没有地址栏,任何你想要的。这里有一个例子:
hyperlink1.Attributes.Add("onclick", "window.open(http://www.mylink.com?sessionvar1=" + someValue + "',null,'height=251px, width=600px,status=no, resizable=no, scrollbars=no, toolbar=no,location=no,menubar=no ');");
这只是一个标准按钮的替代方案,否则将调用单击处理程序。请记住,您可以从前面添加整个内容作为属性。
我将此代码用于重定向:
Response.Write("window.open('http://www.whatever.com','_blank')<"+"/script>");
最后的标签需要被格式化<"+"/script>
我添加到@DaveWalker响应:
Response.Write("<script>")
Response.Write("window.open('NewPage.aspx','_blank','resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=no')")
Response.Write("</script>")
这将创建一个弹出窗口,而不是打开一个新的选项卡。
我见过很多anwer,但没有人真正适合我。所以我尝试了以下代码,它解决了我的问题:
首先,我用一个与按钮具有相同方面的链接按钮更改了mt按钮。
<asp:LinkButton ID="btPrint" runat="server" class="btn btn-primary"><span class="glyphicon glyphicon-print"></span> Print</asp:LinkButton>
在此之后,我在代码后面添加了以下内容。
btPrint.Attributes.Add("href", String.Format("printPage.aspx?&id={0}", txtId.Text));
btPrint.Attributes.Add("target", "_blank");
这适用于我的
关于aspx代码:
<a id="myLink" target="_blank" onclick="window.open('ExamplePage.aspx, '_blank');">Link To A Page And Open Other Tab</a>