【发布时间】:2011-05-10 07:25:16
【问题描述】:
我在一个 TinyMCE 实例中有以下内容:
<p><span id="span1">Test</span><span id="span2">Bla</span></p>
当用户将光标设置在“B”之前并开始输入时,我希望将文本输入到第二个跨度中。谷歌浏览器(确切地说,我使用的是 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”…
谷歌浏览器似乎再次将光标移动到上一个节点的末尾。我也尝试修改 Range 对象,但这导致了同样的问题。
我想不出任何解决这个问题的方法,有人知道是什么原因造成的以及如何解决它吗?
干杯,
坦率的
【问题讨论】:
-
很抱歉,我认为您无法解决此问题 :(
标签: javascript google-chrome selection