【发布时间】:2015-08-20 06:55:44
【问题描述】:
我有一个 contenteditable <p> 包含文本的元素,在这个 <p>element 里面有一个内联元素,它是一个 <span>
contenteditable 不允许我在 <span> 中的索引 0 处写入
我做了一个小提琴来演示这个问题: JsFiddle
现在打开浏览器控制台,然后尝试在内联 <span> 的索引 0 处键入任何内容。如您所见,文本输入不会放在索引 0 处,而是放在第一个文本节点的最后一个索引处。
我已尝试使用 rangy.js 更改此行为。
这个想法是检查 carret 是否放置在第一个文本节点的最后一个索引处,然后在按下右箭头时,我会将 carret 放置到第二个节点中的索引 0 处。但问题依然存在。
//rangy try without the if-statement.
var nodes = $el[1].childNodes, index = 0;
var range = rangy.createRange();
//Setting the start at node 2 index 0.
range.setStart(nodes[1], index);
range.collapse(true);
var sel = rangy.getSelection();
sel.setSingleRange(range);
【问题讨论】:
标签: javascript html contenteditable rangy