是否可以更改 Windows 中的文本选择方法?如果是,那么如何?
例如,我在我的网站上使用 Mozilla Pdf.js。( https://mozilla.github.io/pdf.js/web/viewer.html )
是否可以像这样实现“Android”文本选择,以便用户能够修改所选文本:
而不是经典的文本选择:
最佳答案
是的,使用 javascript 是可能的。
选择的主要部分是Range目的。如果我们可以定义范围,我们就可以定义一个选择。要定义范围,我们需要 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/ .希望对您有所帮助!
关于javascript - 更改 Windows 中的文本选择方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51211663/