簡體   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