内容可编辑分区-根据内部HTML位置的光标位置
Contenteditable Div - Cursor position in terms of innerHTML position
我已经做了研究,在StackOverflow上遇到了这些问题,人们问了同样的问题,但问题是他们想从左边得到x和y坐标或列的位置。我想知道相对于div的innerHTML,光标的位置是什么。
例如:
innerHTML = "This is the innerHTML of the <b>div</b> and bla bla bla..."
^
Cursor is here
所以我想要的结果是44。怎么做?
var target = document.createTextNode("'u0001");
document.getSelection().getRangeAt(0).insertNode(target);
var position = contentEditableDiv.innerHTML.indexOf("'u0001");
target.parentNode.removeChild(target);
这会临时插入一个包含不可打印字符('u0001
)的伪文本节点,然后在div
的innerHTML
中查找该字符的索引。
在大多数情况下,这会使DOM和当前选择保持不变,并可能产生一个较小的副作用:如果光标位于单个文本节点的文本中间,则该节点将被分解为两个连续的文本节点。通常情况下,这应该是无害的,但在特定应用程序的上下文中要记住这一点。
更新:原来您可以使用Node.normalize()
合并连续的文本节点。
相关文章:
- 加载页面时更改html页面的位置
- HTML文档中脚本标记的位置-<头部>&<身体>有不同的行为
- 将Rails后端添加到JS/HTML/CSS应用程序时,正确的文件位置是什么
- JavaScript OnChange Listener在HTML标记中的位置
- 获取 HTML 5 音频控制文件位置并在不使用 id 选择器的情况下更新 src
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- 内容可编辑分区-根据内部HTML位置的光标位置
- 如何在提交html表单后保持相同的位置
- 如何使用位置获取滚动功能获取 HTML 中的元素标签
- 如何在 html Web 应用中检测滑动原点位置
- 如何使某个框等于图像HTML的位置
- HTML 按钮以在页面上的其他位置提交表单
- 为什么我在 webpack 中需要 html 文件时会得到一个位置字符串
- 如何在 Google App Engine 上存储 HTML 5 地理位置数据
- 如何获取相对于 HTML 页面的标记位置
- HTML重定向到错误的位置
- JSON获取地理位置在HTML中未返回值
- HTML-从javascript中的URL位置读取.txt文件
- 如何让滑块在ipad上点击到特定位置.HTML Javascript
- 谷歌浏览器不会问我的位置- html/ js