2013-04-24 84 views
2

如果我有<p> some text <b> some oth|er text </b> bla bla </p>,其中|是尖,我想要得到的偏移相对p标签节点,是有办法,也许我能找到的偏移量相对于该p?我该如何相对于HTML元素祖父母偏移?

现在我正在选择的抵消此种:

var range = window.getSelection().getRangeAt(0); 
var offset = range.startOffset; 

然而,这返回相对大胆的标签偏移。

我需要这个,因为我正在开发在Javascript的编辑和我需要的,因为我使用这个编辑器实时协作来实现输入功能自己。当有人在p标签的孩子中间按下输入键时,我发现这个问题。

感谢您的帮助:)

回答

1

可能有更好的方法来做到这一点,但我还没有足够的选择发挥,但范围。然而,我在想,既然你已经知道的人物偏移相对b标签,你只需要添加到计数包含b标签就知道总偏移之前出现的文本节点中的字符数。

我相信你可以做类似的东西,range.startContainer.parentNode得到b标签的父节点。

然后,您可以循环在p标签的childNodes直到childNodes[i]b标签并在每次遇到一个文本节点(node.nodeType === 3)的时候,你添加node.textContent.length的偏移。

相关问题