【问题标题】:Open URL in New Tab Instead of New Window在新选项卡而不是新窗口中打开 URL
【发布时间】:2012-01-28 13:35:23
【问题描述】:

我正在使用以下代码从 url 打开带有下拉选择值的文件

Protected Sub ddlPS_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlPS.SelectedIndexChanged
        ClientScript.RegisterStartupScript(Me.GetType(), "openfile", String.Format("var w = window.open('http://foods.shakarganj.com.pk/pdf/{0}.pdf');", ddlPS.SelectedValue), True)
    End Sub

问题是,当我从下拉列表中选择值时,它会在窗口中打开文件并刷新父页面。我想避免父页面刷新并希望在新选项卡中而不是在新窗口中打开文件。

【问题讨论】:

  • 在 Firefox 中这将工作 var w = window.open('http://foods.shakarganj.com.pk/pdf/{0}.pdf','_newtab');

标签: asp.net drop-down-menu


【解决方案1】:

您的下拉菜单更改导致回发到服务器。您可以避免这种行为,关闭自动回发并绑定客户端脚本事件以在新选项卡上打开新窗口。

您需要的解决方案:ASP.Net Open New Tab in Browser from CodeBehind

【讨论】:

  • 这篇文章用于超链接,但我要求使用下拉列表在 chrome 中打开新标签。请告诉我有关下拉列表的信息
  • 同样的逻辑,只是为每个会打开链接的项目绑定一个javascript事件。
【解决方案2】:

为了防止页面刷新使用jquery打开链接:-

<script type="text/javascript">
        $(document).ready(function () {
            $('#<%=ddlPS.ClientID %>').change(function (event) {
                event.preventDefault();
                var w = window.open('http://foods.shakarganj.com.pk/pdf/' + $(this).val() + '.pdf');
            });
        });
    </script>

【讨论】:

    【解决方案3】:

    在 Firefox 中这将起作用,在您的 window.open 上添加目标 _newtab

    var w = window.open('http://foods.shakarganj.com.pk/pdf/{0}.pdf','_newtab');
    

    对于 IE,您必须强制用户更改浏览器配置,以便新窗口将作为选项卡打开

    【讨论】:

    • 但是先生,我必须使用 Chrome,请告诉一些 abt chrome