使用JavaScript将光标设置为节点的开头时,Google Chrome会将光标移动到上一个节点的末尾

使用JavaScript将光标设置为节点的开头时,Google Chrome会将光标移动到上一个节点的末尾,javascript,google-chrome,selection,Javascript,Google Chrome,Selection,我在TinyMCE实例中有以下内容: <p><span id="span1">Test</span><span id="span2">Bla</span></p> Google Chrome似乎再次将光标移动到上一个节点的末尾。我还尝试修改范围对象,但这导致了相同的问题 我想不出任何解决这个问题的办法,有没有人知道是什么原因造成的,以及如何解决 干杯, 坦率的这是WebKit中一个长期存在的bug,多年来一直困扰着富文本编

我在TinyMCE实例中有以下内容:

<p><span id="span1">Test</span><span id="span2">Bla</span></p>
Google Chrome似乎再次将光标移动到上一个节点的末尾。我还尝试修改范围对象,但这导致了相同的问题

我想不出任何解决这个问题的办法,有没有人知道是什么原因造成的,以及如何解决

干杯,

坦率的

这是WebKit中一个长期存在的bug,多年来一直困扰着富文本编辑器开发人员。相关WebKit错误:


不幸的是,没有一个像样的解决方案。我过去曾尝试跟踪光标位置,在当前文本节点的开头插入一个零宽度空格字符,然后在光标移到其他位置后将其删除,但这绝对是一个管理上的难题,很难纠正。

很抱歉,我认为您无法解决此问题:(
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”…