更改 Windows 中的文本选择方法

Change text selection method in Windows

是否可以更改 Windows 中的文本选择方法?如果是,那又如何?

例如,我在我的网站上使用 Mozilla Pdf.js。(https://mozilla.github.io/pdf.js/web/viewer.html)

是否可以像这样实现 "Android" 文本选择,以便用户能够修改所选文本:

代替经典文本选择:

是的,javascript 是可能的。

选择的主要部分是Range对象。如果我们可以定义范围,我们就可以定义一个选择。要定义范围,我们需要 startContainerstartOffsetendContainerendOffset 属性。 接下来是 "Android" 选择的想法:当鼠标按下时 - 记住用户单击的容器和偏移量(我们可以使用 document.caretPositionFromPointdocument.caretRangeFromPoint 快速完成,具体取决于浏览器)。当鼠标移动或向上时 - 记住第二个容器和偏移量。所以每时每刻,我们都有 startend 容器和偏移量,因此我们可以创建一个选择:

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

然后,当鼠标再次按下时,我们可以检查用户是否点击了选择的起点或终点,根据这些信息,我们可以 'freeze' 起点或终点并移动另一个. 'move the other one' 我的意思是重新创建选择范围。

我在这里实现了这个想法https://jsfiddle.net/uvaf36gh/。希望对您有所帮助!