【问题标题】:Use onCLICK but fallback to HREF if right-clicked使用 onCLICK 但如果右键单击则回退到 HREF
【发布时间】:2015-12-29 16:26:20
【问题描述】:

如果用户点击链接,应该会打开一个弹出窗口。

这是我们的 current.html

<a href="#" onclick="window.open('important.html', '_blank', 'width=900,height=600');>

这很好用,但是href="#" 阻止了页面去任何地方。

我想处理用户可能右键单击链接并选择在新选项卡中打开链接的情况。

目前,current.html 的新标签将打开,而不是 important.html - 因为href="#"

...当用户不右键单击时,将我们的 href 更改为 href="important.html" 是不可行的,因为我们的 onclick 的新窗口,并且将触发来自我们的 href 的相同的新选项卡。

如何单独设置href以供右键使用?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    如果您的 onclick 事件返回 false,您可以阻止默认的锚点点击行为:

    &lt;a href="important.html" onclick="window.open('important.html', '_blank', 'width=900,height=600'); return false"&gt;link&lt;/a&gt;

    这样您就可以同时覆盖左键和右键单击功能。

    【讨论】:

      【解决方案2】:

      您应该设置href="important.html" 以使右键单击正常工作,然后更改您的onClick 以防止左键单击时的默认操作:

      function click() {
        event.preventDefault(); // Prevents the default anchor action.
        window.open('important.html', '_blank', 'width=900,height=600')
      }
      

      然后设置onClick:

      <a href="important.html" onclick="click()">link</a>
      

      【讨论】:

        【解决方案3】:

        添加return false; 将阻止链接的默认行为发生。当使用 在新标签页中打开 时,它使用默认行为。

        <a href="important.html" onclick="window.open('important.html', '_blank', 'width=900,height=600'); return false;">Link</a>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-25
          • 2017-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多