0

フォーカスされていないChromeのcontenteditable divにキャレット位置を設定する必要がありますが、divのHTMLのキャレット位置、つまり文字インデックスを知っています。div には、その中に他の要素が含まれる場合があります。

私がこれまでに得た最高のものは、divの最後または最初にキャレット位置を設定することです

domNode.focus();
if (window.getSelection) {
    var sel = window.getSelection();
    //sel.collapseToStart();
        //sel.collapseToEnd();
    sel.collapse(domNode, caretPos);
}

また、選択範囲で「変更」を呼び出して、カーソルを単語ごとに手動で移動し、選択したテキストの長さを数えようとしましたが、途中に要素がある場合はテキストが停止します。たとえば、div コンテンツが「hello <span>world</span>」の場合、選択したノードのテキストのみとなりますhello

4

0 に答える 0