0

私はCKEditor4を使用しています

次のような場合です。選択肢はありますが、2つのアクションを完了する必要があります。最初のアクションは、選択からいくつかのスパンタグを削除することです。2番目のアクションは、選択範囲の周りにスパンタグをラップすることです。2番目のアクションは、次のアクションで実行する必要があります。editor.applyStyle(style);

ここでの問題は、最初のアクションが選択範囲を折りたたんでおり、折りたたまれているため、2番目のアクションに使用できないことです。

選択を維持するためのjavascriptまたはCkeditor関連のソリューションはありますか?

私はすでにブックマークでそれを維持し、最初に2番目のアクションを実行するように変更してみました。ただし、2番目のアクションはスパンを処理しているため、他のスパンタグが削除されます。そして、スパンタグが削除されるかどうかを制御する必要があります。

4

1 に答える 1

2

あなたのような場合、CKEditorはブックマークを使用しますが、ブックマークにはいくつかの種類があることを知っておく必要があります-通常(ノード参照に基づく)、シリアル化可能(スパンに基づく)、および3番目のタイプ(ノードアドレスに基づく)。

DOMを変更する場合、最も便利なのはシリアル化可能なブックマークです。ただし、「スパンで機能する」コードはそれらを認識する必要があり(特別なdata-cke-bookmark属性があります)、削除しないでください(ただし、移動することもできます)。

DOMを変更する場合、範囲を覚えるのにこれ以上の方法はありません。CKEditorのメソッドは、ブックマークの祖先全体などを削除しない限り、ブックマークを破棄しないことに注意してください。

于 2013-03-25T17:19:16.713 に答える