C# 在重定向到新选项卡中的页面时避免弹出窗口阻止程序

C# 在重定向到新选项卡中的页面时避免弹出窗口阻止程序,c#,model-view-controller,webforms,C#,Model View Controller,Webforms,因此,我有一个应用程序,需要以PDF格式导出报告。点击按钮,生成的pdf将在新选项卡中打开,供用户在下载前查看内容 我的问题是在新选项卡中打开页面时会收到弹出窗口阻止程序警告,我已尝试以下操作: string url = "/Page2.aspx?id="+id+; Response.Write("<script>"); Response.Write("window.open('"+url+"','_newtab')"); Response.Write("</script&g

因此,我有一个应用程序,需要以PDF格式导出报告。点击按钮,生成的pdf将在新选项卡中打开,供用户在下载前查看内容

我的问题是在新选项卡中打开页面时会收到弹出窗口阻止程序警告,我已尝试以下操作:

string url = "/Page2.aspx?id="+id+;

Response.Write("<script>");
Response.Write("window.open('"+url+"','_newtab')");
Response.Write("</script>");


但仍然没有进展。重定向应该在服务器端完成,因为我必须获取一些数据并将其与链接一起传递。

通常浏览器会阻止弹出窗口,除非用户启动弹出窗口

如果一个窗口由于onclick而直接打开,它通常会正常打开。如果按钮单击间接打开窗口,则更有可能被阻止。因此,你的脚本标签等很可能会被阻止为垃圾邮件网页(没有人希望在浏览时出现未经请求的弹出窗口)

将window.open直接放入onclick事件是最有可能的解决方案

但是,最终您无法控制浏览器的行为,因此可能无法执行您想要的操作


将按钮更改为样式化的超链接将有效(目标为_blank或类似)。与新窗口相比,无法告诉浏览器在新选项卡中打开。

通常浏览器会阻止弹出窗口,除非用户启动弹出窗口

如果一个窗口由于onclick而直接打开,它通常会正常打开。如果按钮单击间接打开窗口,则更有可能被阻止。因此,你的脚本标签等很可能会被阻止为垃圾邮件网页(没有人希望在浏览时出现未经请求的弹出窗口)

将window.open直接放入onclick事件是最有可能的解决方案

但是,最终您无法控制浏览器的行为,因此可能无法执行您想要的操作


将按钮更改为样式化的超链接将有效(目标为_blank或类似)。无法告诉浏览器在新选项卡中打开而不是在新窗口中打开。

是否尝试使用
@Alex我需要在c#中执行重定向,因此我无法使用锚定标记解决方案。您可以尝试吗<代码>,这将从“新建”选项卡中的服务器请求页面2,并且您的c代码也将运行。但如果在重定向之前需要对JavaScript执行某些操作,则这可能不起作用。@Alex
\u newtab
甚至不是有效的
目标
属性值。它名为
\u blank
。请尝试使用
@Alex我需要用c语言进行重定向,因此我无法使用锚定标记解决方案。您可以试试吗<代码>,这将从“新建”选项卡中的服务器请求页面2,并且您的c代码也将运行。但如果在重定向之前需要对JavaScript执行某些操作,则这可能不起作用。@Alex
\u newtab
甚至不是有效的
目标
属性值。它叫
\u blank
。你是说我想要实现的是不可能的?你是说我想要实现的是不可能的?
Page.ClientScript.RegisterStartupScript(this.GetType(),"OpenWindow","window.open('"+url+"','_newtab');",true);
ScriptManager.RegisterStartupScript(this, this.GetType(), "NewTab", "window.open('" +url+ "');", true);