从 C# 在新选项卡中打开页面

Posted

技术标签:

【中文标题】从 C# 在新选项卡中打开页面【英文标题】:Open page in a new tab from C# 【发布时间】:2012-11-08 20:15:51 【问题描述】:

有人知道如何在 C# 代码的新标签页中打开 URL 吗? 我试过了

Response.Write("<script type='text/javascript'>window.location.href('../Documents/doc.pdf','_blank'); </script>");


Response.Write("<script type='text/javascript'>window.open('../Documents/doc.pdf','_blank'); </script>");

Response.Write("$('#pageContent_Send').click();");

$("#pageContent_Send").click(function () 
        window.open("../Documents/doc.pdf");
        return false;
    );

它不起作用,使用“window.open”我收到“弹出窗口阻止程序”浏览器警告。

【问题讨论】:

只是说允许临时弹出窗口,它应该可以工作......你会看到弹出窗口,因为新窗口已打开 您不能“从 C# 代码打开新选项卡”,C# 代码运行服务器端,它与运行 Web 浏览器的客户端完全不同。而且您也不能直接在 javascript 中执行此操作(您在任何体面的浏览器中都会收到弹出窗口阻止程序警告),您只能打开一个新选项卡作为对用户操作(例如单击)的响应。 【参考方案1】:

有几个选项可以打开不会被阻止的新标签。

    您可以让它通过锚点单击打开 URL,例如 &lt;a href="&lt;url&gt;" target="_blank"&gt;click me&lt;/a&gt; 您可以将表单提交给空白目标,给出类似的结果,但来自表单。如果您需要发布,这很有用,但对于获取也很有用。像这样&lt;form method="get" action="&lt;your destination&gt;" target="_blank"&gt;&lt;button type="submit"&gt;Click Me&lt;/button&gt;&lt;/form&gt; 您可以将 JS 与 window.open 一起使用,但它必须与活动的点击事件相关联。我在您的原始帖子中看到这已被阻止,但如果您直接在点击事件上触发它(即不使用 setTimeout 或异步调用或其他延迟窗口打开的东西),那么这应该适用于所有浏览器。由于您试图通过强制单击来“伪造”它,因此除非您明确允许,否则浏览器每次都会阻止它。

【讨论】:

最好不要将答案表述为问题。如果您有任何问题,请发表评论。如果您要发布答案,您应该有足够的信心将其作为声明发布是正确的。 不,我需要的是在执行服务器端代码后在新选项卡上打开新页面,所以,当用户按下按钮时,服务器端代码必须运行,如果它运行成功,然后应该显示新页面。【参考方案2】:
<a href='www.xyz.com' target='_blank'>Click me to open me in new tab</a>

【讨论】:

以上是关于从 C# 在新选项卡中打开页面的主要内容,如果未能解决你的问题,请参考以下文章

如何根据登录成功在新窗口/选项卡或同一窗口/选项卡中打开页面?

使用角度导航时,在新选项卡中打开链接未在新选项卡中打开

当用户选择“在新选项卡中打开”/“在新窗口中打开”而不是使用 html/javascript 点击时如何到达所需的页面

在本机 iOS 中未加载在新窗口或选项卡中打开的链接

在新选项卡中打开链接(WebBrowser 控件)

如何在gridview的rowcommand事件中在新选项卡中打开页面?