各テキストの変更後にコンテンツが編集されているcontenteditable divがある(textchange.js)HTMLタグを追加するようなもの(一部の単語の色を変更するスパンタグのみ)、ここでいくつかの空白を追加または削除していますが、ユーザーが編集中にコンテンツが変更されているので、キャレットはキーを押すたびに位置が変わります。 私はこのジャンプを回避する方法を探していますが、私はすでに編集前のキャレットの位置で一種のマーカーとして使用されない特殊な文字を追加することを考えました。それが終了したら、キャレットをこの位置に戻しますが、私はregexをたくさん使っています(現在は各textchangeの約25回後です)。この特殊文字はほぼすべて1つ1つを壊してしまい、\x40?
全然いいと明確になりませんすべての場所、:jscriptでコンテンツを編集した後、contenteditableにキャレットポジションを維持する
/\s<span class="b0">hello\sworld</span>/g
へ:
/\s\x40?<span class="b0">\x40?h\x40?e\x40?l\x40?l\x40?o\x40?\s\x40?w\x40?o\x40?r\x40?l\x40?d\x40?</span>/g
それは役立ちますが、ここで内容は(各キーの押下後に)どのように変化するかについての例であれば、私は知らない。
foo +++ <span class="c3">bar</span> - baz -<span class="c0">qux</span>
へ:
<span class="c1">foo</span> + <span class="c3">bar</span> - <span class="c1">baz</span> * <span class="c0">qux</span>
私はすべてのアドバイスに感謝するだろう、この問題を解決する方法のヒント、またはこのマーカーを行うためのよりよい方法について説明します。
ありがとうございました:)
[この質問](http://stackoverflow.com/questions/2871081/jquery-setting-cursor-position-in- contenteditable-div)では、位置を設定する方法について説明します。どこに置くのかを決めることは、もう一つのトリックです – Joe