繁体   English   中英

是否有一种很好的方法可以在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节点具有“在新窗口中打开链接”上下文菜单选项,就像您具有任何标准<a>标记链接一样。 但我不希望该dom节点在单击时打开该链接。 我有什么选择?

我现在正在做的选择给我带来了麻烦。 我目前正在<a>节点上设置一个单击处理程序,该处理程序调用event.preventDefault() 这样做的问题是,它防止了<a>标记内的所有内容的默认设置。 例如,如果我有一个复选框,则单击鼠标后该复选框将变为不可选择状态。 我可以四处寻找东西,以便解决问题(通过在正确的位置使用stopPropagation() ),但这令人难以置信,并且可能在以后浪费我和我的团队时间。 有没有那么简单的方法?

我有html类型的示例:

<a href="www.whatever.ninja">
  <input type='checkbox'/>
  <div contenteditable="true">Your cursor could be |here!</div>
  <div>More content...</div>
</a>

我将一个类添加到<a>标记中,然后使您的preventDefault调用仅适用于具有该类的元素。 这样,您就可以设置样式,使其看起来也不像链接。 您是否正在使用类似jQuery的工具? 您可以执行以下操作:

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

然后在您的html中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM