相关疑难解决方法(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中选择后,保持范围对象的更改

有没有办法保存更改,例如更改跨越多个标记的HTML文本的背景,以便在再次加载时,所做的更改应反映在HTML页面中.

编辑:详细解释.

加载HTML页面时,使用范围对象和executeCommand选择并突出显示文本:

             document.execCommand("BackColor", false, 'yellow');
Run Code Online (Sandbox Code Playgroud)

更改(将文本突出显示为黄色)保留,直到重新加载页面.但是当重新加载页面时,这些更改不存在.我想要的是以某种方式保存这些更改,如在本地数据库sqlite中,以便在重新加载/刷新页面时,应显示HTML页面中的更改.

知道如何做到这一点.我是否需要保存其范围起始偏移和结束偏移,可用于下次加载页面时创建范围.请提供您的见解.

html javascript jquery range selection

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

contentEditable div动态替换innerHTML

有没有办法(除了Rangy库)在运行中改变contentEditable Div InnerHTML,就像在keyup上一样,没有光标位置/焦点丢失?我想使用纯JavaScript代码,尽可能简单.

例如 :

<div id="divId" contentEditable="true" onkeyup="change(this)"></div>
Run Code Online (Sandbox Code Playgroud)

那么javascript:

function change(element)
{
  element.innerHTML = element.innerHTML.replace(/.../, '...');
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

html javascript contenteditable

2
推荐指数
1
解决办法
5135
查看次数