У меня есть следующий контент в экземпляре TinyMCE:
<p><span id="span1">Test</span><span id="span2">Bla</span></p>
Когда пользователь устанавливает курсор перед буквой «B» и начинает печатать, я хочу, чтобы текст печатался во втором диапазоне.Google Chrome (я использую Chromium 11.0.696.65, если быть точным) устанавливает курсор в конец первого диапазона, который можно проверить с помощью следующего кода:
document.body.innerHTML = '<p><span id="span1">Test</span><span id="span2">Bla</span></p>';
document.designMode = "on";
// Now click between the “t” and the “B”
var sel = document.getSelection();
alert(sel.baseNode.data);
К сожалению, он неможно установить фокус на начало второго диапазона вручную:
var span = document.getElementById("span2");
sel.setBaseAndExtent(span, 0, span, 0);
alert(sel.baseNode.data); // Is still “Test”!
sel.setBaseAndExtent(span, 1, span, 1); // Move inside the span for testing
alert(sel.baseNode.data); // Now it’s “Bla”…
Похоже, что Google Chrome снова перемещает курсор в конец предыдущего узла.Я также попытался изменить объект Range вместо этого, но это привело к той же проблеме.
Я не могу придумать какое-либо решение этой проблемы, есть ли у кого-нибудь идея, что вызывает это и как исправитьэто?
Ура,
Кандид