5

CKEditorを使用してtextareasをwysiwygに変更しています。Ajax呼び出しを介してコンテンツをロードする場合を除いて、すべて正常に機能します。その後、CKEditorがロードされません。

解決策を探しましたが、うまくいくものが見つかりませんでした。

私のAjax呼び出しは基本的に次のようになります。

$.ajax({
    type: "POST",
    url: url,
      success: function(data) {
            $('#content').html(data);
            $('.ckeditor').ckeditor();
      }
});

ご覧のとおり、関数ckeditor()を使用してプログラムでCKEditorをロードしようとしました。しかし、これは私に次のエラーを与えます:

FireFoxは言う:

$( "。ckeditor")。ckeditorは関数ではありません

そしてIEは言う:

オブジェクトはプロパティまたはメソッド'ckeditor'をサポートしていません

コンテンツがAjax呼び出しを介してロードされるときに、クラス名でCKEditorをロードする他の方法はありますか?

4

6 に答える 6

7

まず、jqueryアダプターをロードする必要があります'/path/to/ckeditor/adapters/jquery.js'

動作するより$('.ckeditor').ckeditor();

于 2013-08-06T08:46:23.657 に答える
4

次のコマンドを使用できます。

CKEDITOR.replace( 'editor1' );

ただし、1つの違いがあります。editor1はテキストエリアのIDであり、クラスではありません。

于 2014-09-27T06:29:57.323 に答える
2

これを回避する方法があります。いつものようにckeditorをロードしますが、非表示のままにしておきます。コンテンツがajaxを介してロードされると、エディターdivにデータが入力され、jqueryを介して表示されます。

于 2012-07-09T19:18:47.463 に答える
1

$('.ckeditor').ckeditor(); 私はajaxの成功を適切に呼び出すことによって、受け入れられた答えを試しました 。しかし、これはエラーを引き起こしました。

しかし、StanleyDの答えはうまくいきました。

コンテンツにajaxを追加した後、ajaxのsuccessプロパティ内に次のコードを追加してみてください。 CKEDITOR.replace('textareaId');

于 2017-05-29T12:37:07.370 に答える
1

同様の問題がありました。AJAX +ページに要素を追加した後にCKEDITORを使用する複数の領域が必要でした(編集可能なプロパティを持つ領域)。無駄に何時間も費やしてから...

私はこれを見つけて、これらの要素でcontenteditableをtrueに設定した後に追加しました。

CKEDITOR.inlineAll();

AJAX+ページへの追加後のすべてのCKEDITOR領域の初期化を処理しました。

https://docs.ckeditor.com/ckeditor4/docs/#!/api/CKEDITOR-method-inline

于 2017-12-11T22:07:31.277 に答える
0

ajaxの後にdone()使用できるメソッドthen()

$.ajax({
    type: "POST",
    url: url
}).done(function(data){
     $('#content').html(data);
}).then(function(){
     $('.ckeditor').ckeditor();
});
于 2019-03-02T15:21:16.100 に答える