如何设置和获取内容可编辑div(Dart)中的插入符号位置?
如何设置和获取contenteditable div中的插入符号位置如何设置和获取内容可编辑div(Dart)中的插入符号位置?,dart,dart-polymer,shadow-dom,dart-html,Dart,Dart Polymer,Shadow Dom,Dart Html,如何设置和获取contenteditable div中的插入符号位置 我对一种方法感兴趣,这种方法在contenteditable div位于webcomponent(带阴影dom)中时也可以工作。以下代码似乎可以工作。如果不使用阴影dom,则可以使用: var root=window 请注意,在当前的Dartium构建(2015年11月)中,存在一个bug,它会阻止getCaretPosition正确使用阴影dom。在最新的chrome中编译成javascript后,它就可以工作了 int g
我对一种方法感兴趣,这种方法在contenteditable div位于webcomponent(带阴影dom)中时也可以工作。以下代码似乎可以工作。如果不使用阴影dom,则可以使用:
var root=window代码>
请注意,在当前的Dartium构建(2015年11月)中,存在一个bug,它会阻止getCaretPosition
正确使用阴影dom。在最新的chrome中编译成javascript后,它就可以工作了
int getCaretPosition(Element element) {
dynamic root = element.shadowRoot ?? window;
return root.getSelection().getRangeAt(0).endOffset;
}
void setCaretPosition(Element element, int position) {
final range = document.createRange()
..setStart(element, position)
..setEnd(element, position);
dynamic root = element.shadowRoot ?? window;
root.getSelection()
..removeAllRanges()
..addRange(range);
}
请在查看演示