在新选项卡中重定向到页面时避免弹出窗口拦截器

本文关键字:窗口 选项 新选项 重定向 | 更新日期: 2023-09-27 18:13:51

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

我的问题是在新选项卡中打开页面会收到弹出窗口阻止警告,我已经尝试了以下方法:

string url = "/Page2.aspx?id="+id+;
Response.Write("<script>");
Response.Write("window.open('"+url+"','_newtab')");
Response.Write("</script>");

.......

Page.ClientScript.RegisterStartupScript(this.GetType(),"OpenWindow","window.open('"+url+"','_newtab');",true);

ScriptManager.RegisterStartupScript(this, this.GetType(), "NewTab", "window.open('" +url+ "');", true);

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

在新选项卡中重定向到页面时避免弹出窗口拦截器

通常浏览器会阻止弹出窗口,除非该弹出窗口是由用户发起的。

如果一个窗口直接打开的结果是一个onclick,它通常会打开。如果点击按钮间接打开了窗口,则更容易被阻塞。所以你注入的脚本标签等很可能会被阻止为垃圾网页(没有人希望在浏览时出现未经请求的弹出窗口)。

放窗户。直接打开到onclick事件是最可行的解决方案。

但是最终你不能控制浏览器的行为,所以可能无法做你想做的。

将按钮更改为样式超链接可以工作(目标为_blank或类似)。无法告诉浏览器在新选项卡中打开还是在新窗口中打开。