1

私はckEditorを使用しており、スニペット/テキスト置換機能に取り組んでいます。プレーンテキスト文字列またはHTML文字列(段落要素など)のいずれかであるスニペットがあります。document.execCommand('inserthtml'、false、html)を使用してコンテンツを挿入していますが、ほとんどの場合は正常に機能します。

ただし、このメソッドを使用してコンテンツをテーブルセルに挿入しようとすると、コンテンツはカーソルが入った後のセルに、またはカーソルが最後のセルにある場合はテーブルの外側に表示されます。

私の検索では、この状況に関する多くの情報が見つかりませんでした。また、Chromeがこのように動作する理由がよくわかりません。それは意図された振る舞いですか?カーソル位置を維持しながら、任意のhtmlを挿入するためのより良い方法はありますか?

4

2 に答える 2

2

CKEditor APIを使用すると、 APIデモでそのような問題は発生しません

Chromeでは、テーブルを挿入してから、[HTMLの挿入]ボタンを使用しましたが、正常に機能しました。

于 2012-06-07T17:55:31.927 に答える
2

WebKitのバグのようです。「InsertHTML」コマンドのカスタム置換を使用することで、この問題を回避できます。次のデモでは、関連する質問に対する私の回答の関数を使用し、キャレットの位置を保持し、IE <9で機能します(「InsertHTML」コマンドは機能しません)。

http://jsfiddle.net/timdown/7SZjm/2/

于 2012-06-07T15:51:09.670 に答える