【发布时间】:2013-04-15 04:18:20
【问题描述】:
选择文本时,在选择开始的情况下有一些变化,因为它在有时它的末尾开始,它在上一个元素的末尾开始,有时在TextNode的开始时。我正在尝试对此进行规范化,使其始终从包含文本的元素的开头开始,并在包含文本的元素的末尾结束,并使其在浏览器中保持一致。
例如<b>mouse></b><i>cat</i>
When selecting "cat", chrome always seems to do the right thing and return a selection with startContainer cat and startOffset 0. Firefox and occasionally IE8 will often start at the end of the previous element (mouse) with startOffset 5
我试图解决这个问题的粗略尝试没有成功:
var sr=rangy.getSelection().getRangeAt(0);
var sc=sr.startContainer;
if(sc.nodeType!=3||sr.startOffset==sc.length)
{
sr.setStartAfter(sc); //move start to next node in range
}
rangy.getSelection().setSingleRange(sr);
console.log(sr.inspect());
我错过了什么?
【问题讨论】:
标签: javascript rangy