Изменить метод выделения текста в Windows - PullRequest
0 голосов
/ 06 июля 2018

Можно ли изменить метод выделения текста в Windows? Если да, то как?

Например, я использую Mozilla Pdf.js на своем веб-сайте. (https://mozilla.github.io/pdf.js/web/viewer.html)

Можно ли реализовать выделение текста "Android" следующим образом, чтобы пользователь мог изменить выделенный текст:

enter image description here

вместо классического выделения текста:

enter image description here

1 Ответ

0 голосов
/ 08 июля 2018

Да, это возможно с javascript.

Основной частью выделения является Диапазон объекта. Если мы можем определить диапазон, мы можем определить выбор. Чтобы определить диапазон, нам нужны свойства startContainer, startOffset, endContainer и endOffset. Идея выбора «Android» следующая: когда мышь не работает - запомните контейнер и смещение, при котором пользователь щелкнул (мы можем сделать это быстро с document.caretPositionFromPoint или document.caretRangeFromPoint в зависимости от браузера). Когда мышь движется или вверх - запомните второй контейнер и смещение. Таким образом, в каждый момент у нас есть контейнер start и end и смещение, чтобы мы могли создать выделение:

  var range = document.createRange();
  range.setStart(start.container, start.offset);
  range.setEnd(end.container, end.offset);
  var selection = document.getSelection();
  selection.addRange(range);

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

Я реализовал эту идею здесь https://jsfiddle.net/uvaf36gh/. Надеюсь, она вам поможет!

...