【问题标题】:How to stop multiple links when clicking the same link单击同一链接时如何停止多个链接
【发布时间】:2016-05-31 02:32:19
【问题描述】:

我有一个带有超链接控件的数据网格,用户可以单击该控件,它将打开一个新选项卡,显示有关所选项目的信息。我的问题是,如果单击同一项目 3 次,我会在浏览器上获得 3 个新标签。

有没有办法在第一次点击链接时打开标签,只要它是打开的并且有人选择了链接,它可以将焦点放在已经创建的标签上而不是打开一个新的标签吗?

超链接控件的目标设置为“_blank”。

我正在使用 C# 和 Asp.net 4.5。

【问题讨论】:

    标签: javascript c# asp.net hyperlink tabs


    【解决方案1】:

    您可以在target 属性中指定名称:

    <asp:HyperLink
        NavigateUrl="https://www.google.com"
        Text="Go to Google"
        Target="SameWindow"
        runat="server"/>
    
    <asp:HyperLink
        NavigateUrl="http://stackoverflow.com"
        Text="Go to StackOverflow"
        Target="SameWindow"
        runat="server"/>
    

    HTML 示例:

    <a href="http://www.google.com" target="SameWindow">Go to Google</a>
    <br />
    <a href="http://stackoverflow.com" target="SameWindow">Go to StackOverflow</a>

    这(我相信)与使用 javascript window.open 函数传递窗口名称相同。命名窗口打开一次后,随后使用传入的该名称调用 window.open 将在已打开的窗口中加载新 URL。

    这是一个示例 sn-p。由于安全限制 (CORS),您可能必须在完整的 JSFiddle 页面中运行代码 sn-p。

    var openTarget = function() {
      console.log(this);
      var target = this.getAttribute("attr-target");
      window.open(target, "ExampleName");
    }
    
    var elems = document.querySelectorAll("button");
    Array.prototype.forEach.call(elems, function(e) {
      e.addEventListener("click", openTarget);
    });
    <button attr-target="https://www.google.com/">Open Google</button>
    <button attr-target="http://stackoverflow.com/">Open StackOverflow</button>

    【讨论】:

    • 感谢您阻止后续窗口在新选项卡中打开。现在的问题是它突出显示了现有选项卡,但也没有移动焦点。在 IE 中,已经打开的选项卡开始闪烁蓝色,但焦点停留在我的数据网格所在的主页上。有没有办法将焦点移到新标签?
    • @JerryWarra 这是特定于浏览器的行为。您可能一些浏览器中使用window.focus运气好。
    • 有没有办法在超链接上做window.focus?
    • @JerryWarra 不幸的是,我不知道。
    • 非常感谢。我注意到它在 Chrome 中运行良好,但在 IE 和 Firefox 中却不行。
    【解决方案2】:

    你可以在这个简单的代码的帮助下做到这一点

    <p onclick="window.open('www.sample.com','mywindow').focus()" >Visit Now</p>
    

    【讨论】:

      【解决方案3】:

      只需将目标设置为某个名称,例如

      <a href="http://google.com" target="anyname">a link</a>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 2014-01-09
        • 1970-01-01
        • 2013-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多