在另一个元素的开头(管道 | 是插入符号位置)尝试在空元素之前插入节点时,我注意到了这个问题。从此开始:
<p>|<span />Some text</p>
我在 Rangy 范围上使用 range.insertNode() 来粘贴一些文本,但在 Chrome 中我看到了这个结果,新节点出现在空之后<span>
:
<p><span />|INSERTED TEXTSome text</p>
而不是这样:
<p>|INSERTED TEXT<span />Some text</p>
请注意,这在 IE9 中似乎可以正常工作,并且如果插入未在<p>
节点的开头完成,它也可以在 Chrome 中工作,例如:
<p>Some |<span />text</p>
结果是:
<p>Some |INSERTED TEXT<span />text</p>
这是一个简化的示例,但显示了我看到的问题。
为了澄清(如果我以错误的方式处理这个问题,有人可以提出替代方案)我正在尝试插入文本,并且一旦插入完成,光标总是出现在新插入文本的末尾。
例如<p>|Original Text</p>
应该成为<p>INSERTED TEXT|Original Text</p>
但是,插入节点会导致插入符号紧挨在插入的文本之前放置(正如文档所述,它应该用于插入节点,因此没有抱怨)。我试图在插入后使用空<span>
作为标记来恢复插入符号的位置(实际上我正在使用 Rangy 的选择保存和恢复模块来为我做这件事)。