【问题标题】:ASP.NET Response.Redirect to open a new browser window? [duplicate]ASP.NET Response.Redirect 打开一个新的浏览器窗口? [复制]
【发布时间】:2013-08-07 04:43:56
【问题描述】:

我们使用的是 ASP.NET Webforms(不是 MVC)。

我的问题是: 是否可以使用回发然后使用各种 Response.Redirect 打开新的浏览器窗口?

【问题讨论】:

  • 你尝试过什么吗?
  • Response.Redirect 无法打开浏览器,因为 Response.Redirect 是服务器端命令,服务器上不存在浏览器。正如@JLC007 在其答案中所建议的那样,您需要抛出一个 javascript 代码来打开一个新窗口。

标签: c# asp.net


【解决方案1】:

我没有遇到过 Response.Redirect 可以导航打开新窗口的情况。

这是一种不使用 Response.Redirect 的方法,您可以尝试:

ScriptManager.RegisterStartupScript(this, typeof(string), "New_Window", "window.open( 'http://www.website.com', null, 'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no' );", true);

【讨论】:

  • 您可以添加'_blank' 来代替null,但我对其进行了测试并且都给出了相同的结果。它会打开一个新窗口。
  • 请注意,浏览器可能会将以这种方式在页面加载时运行的脚本视为页面启动的,而不是用户启动的。此类链接可能会被弹出窗口阻止程序阻止。
【解决方案2】:

试试这个

 ScriptManager.RegisterStartupScript(this, typeof(string), "openWindow", 
     "window.open( 'http://www.website.com', target="_blank", 
     'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no' );",
       true);

【讨论】:

  • 这和JLC007的回答不一样,怎么样?
  • 目标不同,用于打开新窗口
【解决方案3】:

简短回答?没有。

长答案:

ASP.NET 是服务器端框架,而浏览器窗口的概念是客户端框架。 Response.Redirect 最终会发送一个 Location: [whatever the new url is] 标头作为输出流的一部分。碰巧几乎所有浏览器都通过加载该标头中的 url 来处理该标头。

JLC007's 回答中所述,最轻松的方法是在回发时使用 javascript 打开新窗口。另一种可能的选择是在呈现的表单上使用target 属性。

【讨论】:

  • 我想“很快”是相对的,但更长的答案何时到来?
  • 刚刚。走偏了。
  • 在链接到目标时我可能会使用另一个来源,即MDN。尽管 w3schools 经常有有效的信息,但也存在质量问题 (w3fools.com)。
  • 感谢小费,没有意识到他们不是 W3C 附属的。
猜你喜欢
  • 2020-05-11
  • 1970-01-01
  • 2010-11-02
  • 2017-04-13
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 1970-01-01
相关资源
最近更新 更多