Получить выделенный текст на странице (не в текстовой области) с помощью jQuery - PullRequest
6 голосов
/ 23 августа 2009

Этот плагин позволяет вам захватывать текст, выбранный пользователем в текстовой области, а на этом сайте содержит инструкции, не основанные на jQuery, для захвата текста, выбранного пользователем вне текста. область.

Мне интересно, доступна ли функциональность последнего в любом плагине jQuery.

Редактировать: Кроме того, возможно ли получить начальный и конечный индексы выбора? Т.е. где выбор начинается и заканчивается в содержащем элементе?

Ответы [ 2 ]

6 голосов
/ 23 августа 2009

Причина, по которой трудно найти плагин для этого, состоит не в том, что он не очень "jQuery". Я имею в виду, что плагины jQuery обычно работают с объектами jQuery, и выбор не имеет ничего общего с какими-либо элементами.

Редактировать: Я пропустил тот факт, что вы разместили эту ссылку в своем вопросе, но я оставлю ее ниже для полноты, поскольку моя версия отформатирована лучше (но в остальном идентична). :)

<script language=javascript>
function getSelText() {
  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;
  document.aform.selectedtext.value =  txt;
}
</script>
<input type="button" value="Get selection" onmousedown="getSelText()"> 
<form name=aform >
<textarea name="selectedtext" rows="5" cols="20"></textarea>
</form>
3 голосов
/ 23 августа 2009

Нет ничего плохого в том, чтобы копировать и вставлять фрагменты кода, именно так большинство людей начинают, и вы будете продолжать это делать, пока не разберетесь с фрагментами, которые вы вставите, и начнете изменять биты и части или даже начинать поцарапайте сами.

Для этого конкретного фрагмента кода я не вижу ничего плохого в его копировании, кроме как не полагаться на встроенные обработчики событий и ненавязчиво добавлять 'mousedown' с помощью jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...