我正在开发一个小型实验性编辑器,我想在其中可视化输入字符之间的时间。因此,我使用 javascript 和 contenteditable div 用 SPAN 和时间戳属性包装每个字符。我在rangy的帮助下构建了一个小函数:
function insertAtCursor(char, timestamp) {
var sel = rangy.getSelection();
var range = sel.rangeCount ? sel.getRangeAt(0) : null;
if (range) {
var el = document.createElement("span");
$(el).attr('time', timestamp);
el.appendChild(document.createTextNode(char));
range.insertNode(el);
range.setStartAfter(el);
rangy.getSelection().setSingleRange(range);
}
}
现在我面临着这个概念的两个问题,我希望能得到一些帮助:
一种。使用上述函数,输出以嵌套跨度结束,如下所示:
<span time="12345">a
<span time="12345">b
<span time="12345">c</span>
</span>
</span>
湾。即使我可以运行上述功能,复制和粘贴或拖放操作也可能以一些嵌套跨度结束......我想知道是否有办法避免这种情况?
谢谢, 安德烈亚斯