重複/ダウン投票をマーキングする前に参照してください
私は多くの解決策を見てきました。多くはティム・ダウンなどによるものです。しかし、どれも機能しません。私は見た window.getSelection
、.addRange
など。ただし、ここでどのように適用されるかはわかりません。
これが jsfiddle です。
(試してみました)コード:
var node = document.querySelector("div");
node.focus();
var caret = 10; // insert caret after the 10th character say
var range = document.createRange();
range.setStart(node, caret);
range.setEnd(node, caret);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
要素自体ではなく、要素内のテキストノード内にキャレットを配置する必要があります。 HTMLが<div contenteditable="true">Some text</div>
、要素のfirstChild
プロパティを使用して、テキストノードを取得します。
JsFiddleの更新:
コード:
var node = document.querySelector("div");
node.focus();
var textNode = node.firstChild;
var caret = 10; // insert caret after the 10th character say
var range = document.createRange();
range.setStart(textNode, caret);
range.setEnd(textNode, caret);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);