私は、入力された文字間の時間を視覚化したい小さな実験的なエディターに取り組んでいます。したがって、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);
}
}
今、私はこの概念で2つの問題に直面しています。そこでは、いくつかの助けをいただければ幸いです。
a。上記の関数を使用すると、出力は次のようにネストされたスパンで終了します。
<span time="12345">a
<span time="12345">b
<span time="12345">c</span>
</span>
</span>
b。上記の関数を実行できたとしても、コピー&ペーストまたはドラッグアンドドロップアクションは、ネストされたスパンで終了する可能性があります...そしてそれを回避する方法があるのでしょうか?
ありがとう、アンドレアス