如何在回复中使用Target=_blank.redirect

本文关键字:Target blank redirect 回复 | 更新日期: 2023-09-27 18:21:23

我不一定要使用response.redirect,但这就是我所拥有的。我想在新窗口中打开选定的链接。我该怎么做?

context.Response.Redirect(ConfigurationManager.AppSettings["URL"] + ext );

如何在回复中使用Target=_blank.redirect

答案很简单。浏览器是唯一可以打开新窗口的东西。

你可以做的是在响应中发送一大块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>