2016-10-14 47 views
1

我發現自己處於一種情況,我想獲取觸發selectionChange dom事件的目標元素。如何獲取'selectionchange'dom事件的目標元素

但是通過https://developer.mozilla.org/en-US/docs/Web/Events/selectionchange判斷,e.target中的元素似乎總是正常(非輸入,非textarea)情況下的文檔對象。

那麼這是否意味着我將不得不手動調用window.getSelection,並找出當前的光標位置並找到dom節點?

有誰知道捷徑?或者一些工作示例會很好。

非常感謝!

回答

0

您可以使用document.selection來獲取當前選擇的內容。從http://help.dottoro.com/ljixpxji.php

<head> 
    <script type="text/javascript"> 
     document.onselectionchange = OnChange; 
     function OnChange() { 
      var range = document.selection.createRange(); 
      if (range.text.length == 0) { 
       alert ("The current selection is empty"); 
      } 
      else { 
       alert ("The contents of the current selection are\n" + range.text); 
      } 
     } 
    </script> 
</head> 
<body> 
    Select this text on this page! 
</body> 

- 編輯 -

由於採取

舉例指出,通過@ user1017674此代碼不能在Chrome工作,之後的一點點研究,我發現document.selection只應用於IE < 9.看起來window.getSelection()仍然是獲得它的最好方法。

Ref。 Does chrome supports document.selection?

+0

我不知道你是否已經在chrome.F12上試過這段代碼並複製並粘貼到控制檯中。 document.selection不斷給我未定義。有什麼方法來獲得選定的DOM節點? – user1017674

相關問題