2017-04-25 13 views
0

私は多くのスレッドを見ましたが、私の問題を解決する答えは見つかりませんでした。だから、私はそうのようにCKEditorバージョンのインスタンスを定義します。CKEditorの変更イベントをキャッチできません

var editor = $('#test-editor'); 

editor.ckeditor(function() {}, { 
    customConfig: '../../assets/js/custom/ckeditor_config.js', 
    allowedContent: true 
}); 

私はchangeイベントをキャッチすることができますかわからないが。これは私が試したものです:

var t = editor.ckeditor(function() { 
    this.on('change', function() { 
    console.log("test 1"); 
    }); 
}, { 
    customConfig: '../../assets/js/custom/ckeditor_config.js', 
    allowedContent: true 
}); 

editor.on('change', function() { 
    console.log("test 2"); 
}); 

t.on('change', function() { 
    console.log("test 3"); 
}); 

これらの3つの試みはすべて失敗に終わりました。私は、ページ上のすべてのエディタをループしたくないということを追加する必要があります。コンポーネントにレンダリングされた特定のエディタを#test-editorとするだけです。どうやってやるの?

+0

ところで、私は私のエディタ変数は約束のオブジェクトが含まれていることを参照してください。しかし、私は彼らと恋に落ちたことはありませんし、私はイベントをキャッチするために、この事実をどのように使うことができるのか分かりません。 – Jacobian

答えて

1

jQuery ckeditor()メソッドは、event handlingにCKEditorの5つのイベントだけを公開するjQueryオブジェクトを返します。他のイベントを使用するには、CKEditor.editorオブジェクトを、jQueryオブジェクトのeditorプロパティにアクセスして使用する必要があります。

だから、あなたはこのようなものを使用する必要があります:

var myeditor = $('#test-editor').ckeditor({ 
    customConfig: '../../assets/js/custom/ckeditor_config.js', 
    allowedContent: true 
}); 
myeditor.editor.on('change', function(evt) { 
    console.log('change detected'); 
}); 
+0

ありがとう!ちなみに、おそらくCKEditorについてもう一つ知っています。私には、書式、フォント、サイズのコンボボックスはツールバーにあまりにも多くの場所を占めているようです。それらをアイコンやカスタムレターに変更することができますか? – Jacobian

+0

私はかつて楽しいために彼らのラベルを変更しましたが、幅は同じままでした(おそらく、アイテムの幅のためです)。 – Wizard

関連する問題