当我在一个contenteditable div内插入一个html标签时,我需要将光标移到新插入的元素的外部(向右),所以如果我继续类型,新文本将是未格式化的。Contenteditable:将光标移动到插入的html节点(webkit/ie)外部
与Firefox我发现这个解决方案工作得很好:
node = document.createElement("strong");
node.innerHTML = "test";
range.deleteContents();
range.insertNode(node);
range.collapse(false);
可变范围设置是这样的:
if (window.getSelection) {
var sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
}
}
使用WebKit浏览器上面的代码(浏览器/ Safari浏览器)把光标放在新标签的外面,但是放在左边。
是否有解决方案(Chrome/Safari)和IE支持(主要是9,可选8)?
感谢
========================================= ====
感谢Tim对他的建议,这里的工作代码:
var node = document.createElement("strong");
node.innerHTML = "test";
var space = document.createElement("span");
space.innerHTML = "\u200B";
range.insertNode(space);
range.insertNode(node);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
2013-02-19
Ted R