2013-07-22 7 views
5

私のページにckeditorを追加するには、次のコードを使用しています。ckeditor異なるツールバーのconfgurationsでクラス名を使用してテキストエリアを置き換えます。

<textarea class="ckeditor" name="editor1"></textarea> 

私はすべてではない私のアプリケーションでテキストエリアのは、完全なツールバーを必要とするよう、いくつかのツールバーの構成を定義したいと思います。 私のニーズに合わせてデフォルトのツールバー設定をカスタマイズしましたが、これをさらにいくつかのテキストエリア用のより基本的なツールバーに分解したいと思います。

ckeditorを設定するためにclass属性を使用している場合、これを行う方法はありますか?

答えて

2

クラス名で作成されたエディタでは、異なる設定を行うことはできません。そのような場合は、グローバルCKEDITOR.configのみが考慮されます。

この問題にはまだ簡単な回避策があります。まず、文書の先頭にこのスクリプトを置く:あなたはこのように交換したい各<textarea>について(config.customConfigとして)

<script> 
    CKEDITOR.replaceClass = null; // Disable replacing by class 
</script> 

は今data-custom-configプロパティを定義します。

<textarea class="ckeditor" data-custom-config="myCustomConfig.js"> 
    Moo 
</textarea> 

は最後に次のコードを使用しますクラス名で編集者を手動で置き換える(クラスがckeditorであると仮定します)。このコードは、data-custom-config属性で定義された設定で駆動CKEditorバージョンのインスタンスを持つクラスckeditorのすべてのテキストエリアを置き換えます:

var textareas = Array.prototype.slice.call(document.getElementsByClassName('ckeditor')), 
    textarea, cfg, customCfg; 

while ((textarea = textareas.pop())) { 
    textarea = new CKEDITOR.dom.element(textarea); 
    cfg = {}; 

    if ((customCfg = textarea.getAttribute('data-custom-config'))) 
     cfg[ 'customConfig' ] = customCfg; 

    CKEDITOR.replace(textarea.getId(), cfg) 
} 

そして今は上に桜を付属しています。 myCustomConfig.jsでカスタムツールバーの設定を入れて:あなたは簡単に要素の選択のためのjQueryを必要とするためにこのコードを変更することができますもちろん

CKEDITOR.editorConfig = function(config) { 
    config.toolbar = [ 
     { name: 'basicstyles', items: [ 'Bold', 'Italic' ] } 
    ]; 
}; 

は、リテラルの代わりに、config.customConfigなど、いくつかのオブジェクトを使用します。これは、問題をどのように解決できるかを示す単なるショーケースです。

関連する問題