JQuery UI ダイアログで CKEditor の複数のインスタンスを作成する際に問題が発生しています。ダイアログは AJAX を介してリモート フォームをロードするため、ダイアログを閉じて再度開き、エディターの新しいインスタンスを作成できるようにすることが目標です。デフォルトのオプションでは、ダイアログを再度開くと、その名前のエディターが既に存在するというエラーが表示されます。そのため、エディター インスタンスを破棄する方法をいくつか試しましたが、いずれも同じ問題が発生します。エディターをリロードすると、テキスト領域に null と表示され、ボタンが機能しません。
現在、インスタンスを破棄するこの方法を使用しています。
var instance = CKEDITOR.instances['test'];
if (instance) { CKEDITOR.remove(CKEDITOR.instances['test']); }
ここからダウンロードできる単純な html ファイルをいくつか使用して、この問題を再現しました。
編集:名前が異なるテキスト領域を持つ2つのリモートファイルを使用しようとしましたが、同じ問題が発生しました。一方のダイアログを開いてから閉じると、もう一方のダイアログを開いたときに「null」の CKEditor が表示されます。
また、どうやらこれは Safari のみの問題のようです。