有没有一种好方法来启用“在新窗口中打开链接”?在dom节点上的浏览器菜单选项,而不使链接跟随单击

Is there a good way to enable the "open link in a new window" browser menu option on a dom node, without making the link followed on-click?

本文关键字:链接 浏览器 菜单 节点 dom 选项 跟随 单击 一种 方法 在新窗口中打开      更新时间:2023-09-26

我想有一个复杂的dom节点有"在新窗口打开链接"上下文菜单选项,就像你有任何标准标签链接。但我不想让那个dom节点在点击时打开链接。我有什么选择?

我现在做的选择给我带来了麻烦。我目前正在调用event.preventDefault()节点上设置一个单击处理程序。这样做的问题是,它阻止了标签内的所有内容的默认值。例如,如果我有一个复选框,则鼠标单击该复选框将变得不可选择。我可以在适当的地方使用stopPropagation(),但这是令人难以置信的混乱,并可能在未来浪费我和我的团队时间。有没有不那么俗套的方法?

我的html类型的例子:
<a href="www.whatever.ninja">
  <input type='checkbox'/>
  <div contenteditable="true">Your cursor could be |here!</div>
  <div>More content...</div>
</a>

我将在标记中添加一个类,然后使您的preventDefault调用仅应用于该类的元素。这样,你就可以样式化它,使它看起来不像一个链接。你在使用jQuery之类的东西吗?你可以这样做:

$(document).ready(function() {
    $('a.non-clickable').click(function() {
        $(this).preventDefault();
    });
});

,然后在你的html:

<a href="mylink" class="non-clickable">Some link text</a>