Javascript mark.js markRanges()不考虑HTML元素

Javascript mark.js markRanges()不考虑HTML元素,javascript,mark.js,Javascript,Mark.js,我使用mark.js的方法突出显示具有起始位置和长度的范围,但是,它不考虑HTML元素,例如换行符元素。文档中指出,必须指定起始位置,包括空格字符 例如,以下HTML: <div contenteditable="true" id="text">hi.<br><br>I'm quite well.<br></div> 但是,单词“quity”应该突出显示,它将突出显示世界上最后两个字母we“ll

我使用mark.js的方法突出显示具有起始位置和长度的范围,但是,它不考虑HTML元素,例如换行符元素。文档中指出,必须指定起始位置,包括空格字符

例如,以下HTML:

<div contenteditable="true" id="text">hi.<br><br>I'm quite well.<br></div>
但是,单词“quity”应该突出显示,它将突出显示世界上最后两个字母we“ll”,因为markRanges()方法不计算两个正在进行的

换行元素的字符


我的小提琴不是虫子。更确切地说,空白并不是指

标记和
标记。标记不算作空白。相反,它们意味着实际的文本空白、换行符、空格和制表符,即使它不是由浏览器呈现的

以您的示例为例,稍微调整一下:

<div contenteditable="true" id="text">hi.
   I'm quite well.<br>
你好。 我很好。

“hi.”和“I'm”之间有一个换行符(ASCII字符13或10)和几个空格(ASCII字符32)。浏览器不会显示这些空间的大部分,但只显示单个空间。即使如此,“相当”现在仍处于第15位,因此将以黄色突出显示。

这不是一个bug。更确切地说,空白并不是指

标记和
标记。标记不算作空白。相反,它们意味着实际的文本空白、换行符、空格和制表符,即使它不是由浏览器呈现的

以您的示例为例,稍微调整一下:

<div contenteditable="true" id="text">hi.
   I'm quite well.<br>
你好。 我很好。

“hi.”和“I'm”之间有一个换行符(ASCII字符13或10)和几个空格(ASCII字符32)。浏览器不会显示这些空间的大部分,但只显示单个空间。即使如此,“quite”现在位于第15位,因此将以黄色突出显示。

我认为这是一个bug,因为还有另一个bug带有
标记的准确性选项,请参见我认为这是一个bug,因为还有另一个bug带有
标记的准确性选项,请参见