私のプロジェクトでは、キャレットが contenteditable div にある場所にスパンを追加しようとしています。このスパン要素は、キャレットのオフセット位置を間接的に取得するために使用されます。
var _spanElem = "<span class='spanPos'></span>";
これで、contenteditable div のケア位置を取得できます。また、キャレット位置でスパン要素を削除および追加する方法もわかりました。
しかし、問題は、この操作を行っている間、左ボタンと右ボタンの動作がおかしいことです。
_result.remove('.spanPos'); //removing
var text = _fullText.slice(0, _caretPos) + _spanElem + _fullText.slice(_caretPos);
_result.html(text); //adding at new position
右ボタンを押すと、スパン要素が新しいキャレット位置に正常に削除および追加されますが、左ボタンを押すと、キャレットは次の位置ではなく最初の位置に移動します。
これに対する修正はありますか?
IE8+ と firefox で動作するソリューションを探しています (chrome はオプションです)。