2016-10-14 5 views
1

나는 selectionChange dom 이벤트를 트리거 한 대상 요소를 얻고 자하는 상황에 처한다.'selectchange'dom 이벤트의 대상 요소를 얻는 방법

그러나 https://developer.mozilla.org/en-US/docs/Web/Events/selectionchange으로 판단하면 e.target의 요소는 항상 일반 (비 입력, 비 텍스트 영역) 문서 개체입니다.

그래서 나는 window.getSelection을 수동으로 호출해야하고, 현재 커서 위치를 찾아 dom 노드를 찾으십시오.

누구든지 지름길을 알고 있습니까? 또는 몇 가지 작업 예제가 좋을 것입니다.

고맙습니다.

답변

0

document.selection을 사용하면 현재 선택된 항목을 가져올 수 있습니다.

예는이 코드는 크롬에서 작동하지 않습니다 user1017674 연구의 조금 내가 찾은 후, @ 지적 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> 

--EDIT--

로에서 가져온 document.selection에만 있어야한다 IE <에서 사용되었습니다. window.getSelection()은 여전히 ​​그것을 얻는 가장 좋은 방법이 될 것 같습니다.

Ref. Does chrome supports document.selection?

+0

chrome.F12에서이 코드를 시도한 후 콘솔에 복사하여 붙여 넣기를했는지 모르겠습니다. document.selection은 계속 나를 정의하지 않습니다. 선택한 DOM 노드를 가져올 수있는 방법이 있습니까? – user1017674

관련 문제