5

Ich habe CKEditor für die Aktualisierung CMS Inhalt auf meiner Website verwendet. Ich auch mit FontAwesome, die der Phantasie Icons Set umfasst, die wie dieseCKEditor und escape-Elemente

<i class="icon-envelope"></i> 

Das Problem angezeigt werden kann, ist, dass CKEditor diesen i Tag auf Client-Seite entweicht, und ich kann es in der Quelle-Modus nicht sehen.

Wie kann ich dieses Tag zulassen? Ich habe versucht CONFIG.removeFormatTags = '', aber es stirbt nicht helfen.

+0

i über das gleiche Problem kam, lesen Sie hier für eine Lösung http://stackoverflow.com/a/18254082/ 1316372 – HenryW

Antwort

10

Es wird entfernt, da es leer ist. Setzen Sie einen geschützten Bereich &nbsp; oder null-width Raum &#8203; darin, um Ihr Tag zu bewahren.

Sie können auch i von CKEDITOR.dtd.$removeEmpty Objekt entfernen. Dies kann jedoch andere leere <i> Tags ohne class="icon-envelope" brechen. Um dies zu beheben, müssten Sie mit data processor spielen, um <i>'s ohne class="icon-envelope" zu filtern. Ziemlich einfach, denke ich.

+1

Sollte dies nicht bereits über config.fillEmptyBlocks gehandhabt werden, das standardmäßig auf true gesetzt ist? Wie bearbeitet man das CKEDITOR.dtd. $ RemoveEmpty-Objekt, um das i-Element zu entfernen? Ich kann es nirgendwo in js-Dateien aufgelöste gefunden finden. Ich möchte die fillEmptyBlocks-Funktion bearbeiten, um ​ anstelle des nicht brechenden Speicherplatzes zu verwenden. Der Abstand der Symbole in font-awesome ist nur dann korrekt, wenn das Element leer bleibt oder ​ verwendet wird –

0

unten für mich gearbeitet .. dank Vince Krönlein Hinweis auf config.fillEmptyBlocks

CKEDITOR.editorConfig = function(config) { 
     config.fillEmptyBlocks="&#8203;"; 
} 
CKEDITOR.dtd.$removeEmpty['span'] = false; 
CKEDITOR.dtd.$removeEmpty['i'] = false;