javascript - 更改 Windows 中的文本选择方法

标签 javascript text selection pdf.js textselection

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

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

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

enter image description here

而不是经典的文本选择:

enter image description here

最佳答案

是的,使用 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);

然后,当鼠标再次按下时,我们可以检查用户是在选择的开始处还是结束处单击,并且根据此信息,我们可以“卡住”开始点或结束点并移动另一个。 “移动另一个”是指重新创建选择范围。

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

关于javascript - 更改 Windows 中的文本选择方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51211663/

相关文章:

javascript - jquery插件方法-访问缩进方法

javascript - 用于使用 HTML 而非 HTML5、CSS 和 Java 脚本进行 html 注释的注释框中的颜色和形状选项

iphone - NSString sizeWithFont : for multiple lines?

java - 检查java字符串是否有组合字符

java - 如何删除 GUI 中的选择框?

javascript - 图像 onload 事件在 Firefox 中未触发

javascript - 从 codeigniter 中的 View 调用 javascript 验证函数

html - 网站页脚文本与页脚顶部不对齐

css - JavaFX TableView 更改选定的单元格颜色

java - 在 TreeTableView 中选择子项时还要选择父项直至根