브라우저, 크로스 플랫폼에서 선택한 텍스트 가져오기

브라우저 기반 애플리케이션에서 하고 싶은 일 중 하나는 사용자가 일부 텍스트(텍스트 영역이 아닌 일반 텍스트!)를 선택할 수 있도록 하고, 애플리케이션에 작은 툴바를 띄워 다음 항목(제 경우에는 주석 추가)과 상호 작용할 수 있게 하는 것입니다.

구글에서 WYSIWYG 편집기 작성에 초점을 맞춘 많은 것들을 발견했지만 그러나 제가 원하는 것은 아닙니다, 그리고 대부분은 IE에서는 작동하지만 FF2 또는 3에서는 작동하지 않았습니다. 이상적으로는 브라우저 창에서 현재 선택된 텍스트를 반환할 수 있는 함수가 IE7(가능하면 6), FireFox 2 및 3, Safari 2에서 작동했으면 좋겠습니다. Opera에서도 작동하면 좋겠지만 필수는 아닙니다.

이 기능을 하는 함수가 있나요? 아니면 어디서부터 시작해야 할지 아시는 분?

Jquery 는 해당 플러그인은 준활성 하지만 매우 특정한 작업: 텍스트 강조표시한 수신기마다 태그이고, 랩 그냥 그리웠댔지 될 수 있습니다. # 39, 신앙이니라 너회가 don& 싶지 않다 (있거나 사용할 수 있는 상황에서 can& # 39, t) 외부 수정표시 페이지에 추가할 수 있습니다 다음 시도하시겠습니까 솔루션 대신:

function getSelectedText() {
  var txt = '';

  if (window.getSelection) {
    txt = window.getSelection();
  }
  else if (document.getSelection) {
    txt = document.getSelection();
  }
  else if (document.selection) {
    txt = document.selection.createRange().text;
  }
  else return; 

  return txt;
}

이 함수는 나타내는 개체를 텍스트 선택물. 작동하잖아 다양한 브라우저에서 (하지만, 제가 용의자요 객체에는 it 되돌려줍니다 약간 다른 브라우저에 따라 유일한 아닌 실제 텍스트를 위한 결과를 신뢰할 수 있는 모든 추가 등록).

참고: 당초 코드 부분을 내가 여기 있는 것을 발견했다. http://www.codetoad.com/javascript_get_selected_text.asp

해설 (3)
해결책

jQuery]1wrapSelection 플러그인을 살펴보세요. 원하는 것을 찾을 수 있을 것입니다.

해설 (0)

범위 소개에 다양한 브라우저에서 텍스트 선택에 액세스하는 방법에 대한 자세한 내용이 나와 있습니다.

제 경험에 따르면 이러한 다양한 API로 직접 작업하는 것은 매우 서투르기 때문에 wrapSelection이 적합하다면 이 방법을 사용하는 것이 좋습니다.

해설 (0)

요즘 이 방법을 [제공하십시오 충분한] [1]:

function getSelectedText() {
    return window.getSelection ? window.getSelection().toString() : '';
}

It & # 39, & # 39 의 반환되므로 ',' 의 경우 이전 브라우저와 오페라 미니 정말 드문 경우에 수 있습니다 (테스트할 수 있지만, 이 오래된) + 지켜보리니 참고 UC 브라우저를 안드로이드.

[1]: https://caniuse.com/ # 검색 = 빈다우스게체렉션

해설 (0)

선택과 관련한 개별 브라우저의 동작은 여기에 설명되어 있습니다.

해설 (0)

Ie, Firefox, Safari, 희망을 작동합니다 - # 39 이 코드를 it& 도움을 줄 것이다.

var str = (window.getSelection) ? window.getSelection() : document.selection.createRange();
str = str.text || str;
str = str + ''; // the best way to make object a string...
해설 (0)