2017-09-08 2 views
0

J'ai 4 instances ckeditor sur une page et je veux définir un style sur le dernier (justifybloc).ckeditor définir justifyblock en défaut dans une instance sans mise au point

pour l'instant j'utiliser ce code:

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 concentrer mes textarea et je ne veux pas.

Je ne connais pas d'autre méthode pour le faire.

Merci.

Répondre

0

Je résolu mon problème avec cette solution

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

Le code que vous avez fourni fonctionne comme vous l'avez dit, en mettant l'accent sur l'éditeur. De plus, il ne justifiera/n'alignera que le premier élément de bloc (par exemple le paragraphe) car le focus est défini au début de l'éditeur. Il n'est pas possible d'utiliser cette commande sans éditeur de mise au point.

Cependant, pour parvenir à justifier/alignement seul élément de premier bloc, vous pouvez utiliser une petite solution hackish et le style d'ensemble d'éléments manuellement (d'une manière qu'il est correctement reconnu par justify plug-in):

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'); 
     } 
    } 
}); 

Voir working codepen. Cette solution présente certains inconvénients (par exemple, il suppose que le premier élément de l'éditeur est un élément de bloc - ce qui est vrai dans la plupart des cas, etc.), mais devrait être suffisant dans la plupart des cas.


Par ailleurs, si le fait que le contenu de l'éditeur obtient sélectionné ne vous dérange pas et que vous voulez justifier/aligner le contenu ensemble, il doit d'abord être sélectionné (selectall plug-in nécessaire), comme:

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'); 
     } 
    } 
}); 

Bien sûr, vous pouvez toujours déplacer la sélection/focus ailleurs plus tard.

+0

Merci pour votre solution! J'utilise une autre astuce avec l'événement sur ('focus', function() { evt.editor.execCommand ('justifyblock'); }); – hydrog3n