contentEditable DIVがあり、ユーザーがキーを押すと、基になるコードが処理され、更新されたコードに置き換えられます。残念ながら、これによりカーソル位置が失われます。
ただし、カーソル位置を保持するために、<span id="placeholder"></span>
処理を開始する前に、DIVの正しい位置にaを正常に挿入しています。これにより、カーソルの意図した位置が保持されますが、選択する範囲を設定できないようです。
これが私が現在持っているものです:
function focusOnPlaceholder() {
var placeholder = document.getElementById('placeholder');
if( !placeholder ) return;
var sel, range;
if (window.getSelection && document.createRange) {
range = document.createRange();
range.selectNodeContents(placeholder);
range.collapse(true);
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(placeholder);
range.select();
}
}
どんな助けでもありがたいです、そしてクロスブラウザソリューションは信じられないでしょう:)