2015-11-22 61 views

回答

1

下面的代碼似乎工作。如果使用沒有影子DOM,你可以只使用:

注意與當前Dartium版本(2015年11月),有其防止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); 
} 

檢查演示在Dartpad

相關問題