开发者

How to get selected word when double-click on div, p, span?

开发者 https://www.devze.com 2022-12-20 05:51 出处:网络
Can you get the word the user has double-clicked on?I\'ve tri开发者_Python百科ed in a onDblClick eventhandler but selectionStart is undefined there; and the onselect event seems to be available only f

Can you get the word the user has double-clicked on? I've tri开发者_Python百科ed in a onDblClick eventhandler but selectionStart is undefined there; and the onselect event seems to be available only for TextArea.


You can use document.selection.createRange().text in IE, and window.getSelection().toString() in firefox and webkit, and attach to the ondblclick handler like so:

document.ondblclick = function () {
   var sel = (document.selection && document.selection.createRange().text) ||
             (window.getSelection && window.getSelection().toString());
   alert(sel);
};

References:

  • MSDN, for document.selection
  • MDN, for window.getSelection()


A Good answer by @David Tang

and window.getSelection().toString() is what I used.


I want to share that you can use baseOffset and extentOffset too.

<p>test data.</p>

<script>
  document.addEventListener("dblclick", (e)=>{
    const selection = document.getSelection()
    // console.log(selection.anchorNode.data) // is whole text: "test data."
    const selectContent = selection.anchorNode.data.slice(selection.baseOffset, selection.extentOffset)
    console.log(selectContent)    
  })
</script>

0

精彩评论

暂无评论...
验证码 换一张
取 消