可持续编辑的Div-根据innerHTML位置表示的光标位置
原学程将引见可连续编纂的Div-依据innerHTML地位表现的光标地位的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
我做了研讨,在StackOverflow上碰到了这些成绩,人们问了异样的成绩,但是成绩是他们想要以x以及y坐标或者从左边开端的列的情势取得地位。我想晓得光标绝对于div的innerHTML的地位。
比方:
innerHTML = "This is the innerHTML of the <b>div</b> and bla bla bla..."
^
Cursor is here
所以我愿望这个例子的成果是四四。怎样做?
推举谜底
var target = document.createTextNode("u000一");
document.getSelection().getRangeAt(0).insertNode(target);
var position = contentEditableDiv.innerHTML.indexOf("u000一");
target.parentNode.removeChild(target);
这会暂时拔出1个包括弗成挨印字符(u000一
)的虚拟文原节面,而后在div
的innerHTML
中查找该字符的索引。
在很年夜水平上,这会使DOM以及以后选择坚持没有变,但是能够有1个很小的反作用:假如光标位于单个文原节面的文原中央,则该节面将被分红二个持续的文原节面。平日情形下,这应当是有害的,但是请在您的特定运用法式高低文中忘住这1面。
革新:本来您不妨应用Node.normalize()
归并持续的文原节面。
佳了闭于可连续编纂的Div-依据innerHTML地位表现的光标地位的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。