javascript - 更改 Windows 中的文本选择方法
问题描述
是否可以在 Windows 中更改文本选择方法?如果是,那么如何?
例如,我在我的网站上使用 Mozilla Pdf.js。( https://mozilla.github.io/pdf.js/web/viewer.html )
是否可以像这样实现“Android”文本选择,以便用户能够修改所选文本:
而不是经典的文本选择:
解决方案
是的,可以使用 javascript。
选择的主要部分是Range对象。如果我们可以定义范围,我们就可以定义一个选择。要定义一个范围,我们需要、startContainer
和属性。接下来是“Android”选择的想法:当鼠标按下时 - 记住用户点击的容器和偏移量(我们可以使用或取决于浏览器快速完成)。当鼠标移动或向上时 - 记住第二个容器和偏移量。所以每时每刻,我们都有容器和偏移量,所以我们可以创建一个选择:startOffset
endContainer
endOffset
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 - 我可以分配一个点击事件或整个 Ember 组件吗?
- node.js - Node js快递请求天气API
- java - 如何使用 bitbucket rest api 使用 springboot 获取所有 repos?
- c# - 如何将列表中间的项目放在首位?
- c# - 添加太多标记会导致地图滞后
- javascript - 在带有空格的搜索工具中显示
- c# - 是否可以在 Word 文档中插入和呈现 xml?
- jquery - 如何在深度嵌套的ul-li跨度结构中仅查找父ul元素
- database - 将代码保存在数据库中,我应该注意哪些陷阱
- docusignapi - dateSignedTabs 没有给出正确的日期