2017-09-08 4 views
0

1つのページに4つのckeditorインスタンスがあり、最後のスタイル(justifybloc)にスタイルを設定したいとします。今のckeditorは、フォーカスなしのインスタンスでデフォルトでjustifyblockを設定します。

私はこのコードを使用します。

CKEDITOR.on('instanceReady', function(evt) { 

    if (evt.editor.name != undefined) { 
     if (evt.editor.name.indexOf('edit-field-body-1') > -1) { 
     evt.editor.execCommand('justifyblock'); 
     } 
    } 
}); 

は私のテキストエリアを集中execCommandと私は望んでいません。

これを行う方法は他にありません。

ありがとうございます。

答えて

0

私は、このソリューションで

CKEDITOR.on('instanceReady', function(evt) { 
    if (evt.editor.name != undefined) { 
    if (evt.editor.name.indexOf('edit-field-body-1') > -1) { 
     evt.editor.on('focus', function() { 
     this.execCommand('justifyblock'); 
     }); 
    } 
    } 
} 

Code pen exemple

0

あなたが提供したコードは、あなたが言ったように、エディタに焦点を当てています。さらに、エディタの先頭にフォーカスが設定されると、最初のブロック要素(たとえば段落)のみを正当化/整列します。フォーカスエディタなしでこのコマンドを使用することはできません。

しかし、達成するためにあなたが(それが適切にjustifyプラグインで認識されている方法で)少しハックソリューションおよび手動で設定要素のスタイルを使用することができます唯一の最初のブロック要素を揃える/正当化:

CKEDITOR.on('instanceReady', function(evt) { 

    if (evt.editor.name != undefined) { 
     if (evt.editor.name.indexOf('editor1') > -1) { 
      evt.editor.editable().getChild(0).setStyle('text-align', 'justify'); 
     } 
    } 
}); 

working codepenを参照してください。

このような解決策にはいくつかの欠点があります(たとえば、エディタの最初の要素がブロック要素であると想定されていますが、ほとんどの場合など)が、ほとんどの場合十分です。ところで


、エディタのコンテンツが選択されることを事実はあなたを気にしないし、それは次のように、( selectallプラグインが必要)最初に選択する必要があり、全体コンテンツの整列/正当化したい場合:

CKEDITOR.on('instanceReady', function(evt) { 

    if (evt.editor.name != undefined) { 
     if (evt.editor.name.indexOf('editor1') > -1) { 
      evt.editor.execCommand('selectAll'); 
      evt.editor.execCommand('justifyblock'); 
     } 
    } 
}); 

もちろん、後でいつでも選択/フォーカスを移動することができます。

+0

を私の問題を解決するソリューションをありがとう! ( 'focus'、function(){ evt.editor.execCommand( 'justifyblock'); onイベントの他のトリックを使用します; }); – hydrog3n

関連する問題