相关疑难解决方法(0)

获取范围的开始和结束偏移量相对于其父容器

假设我有这个HTML元素:

<div id="parent">
 Hello everyone! <a>This is my home page</a>
 <p>Bye!</p>
</div>
Run Code Online (Sandbox Code Playgroud)

用户用鼠标选择"家".

我希望能够确定#parent他的选择中有多少个字符开始(以及#parent他选择结束时有多少个字符结束).即使他选择了HTML标记,这也应该有效.(我需要它在所有浏览器中工作)

range.startOffset 看起来很有希望,但它只是相对于范围的直接容器的偏移量,并且仅当容器是文本节点时才是字符偏移量.

javascript textrange

66
推荐指数
3
解决办法
6万
查看次数

在包含HTML内容的contentEditable区域中获取插入符号(光标)位置

我有contentEditable元素(可以是p,div,...),我想在其中得到插入符号(光标).我通常可以用这段代码实现它:

var position = window.getSelection().getRangeAt(0).startOffset;
Run Code Online (Sandbox Code Playgroud)

这个工作正常,而元素只包含文本.但是当元素包含一些HTML格式时,返回的位置相对于包含的HTML元素中的插入位置.

我们假设contentEditable元素的内容是这样的:

AB<b>CD</b>EF
Run Code Online (Sandbox Code Playgroud)

如果插入符号在内部<b></b>,让我们说在C和D之间,上面代码的返回位置是1而不是3(从contentEditable元素的内容开始算起)

任何人都可以提出解决方案吗?

javascript wysiwyg contenteditable getselection

57
推荐指数
2
解决办法
7万
查看次数