5

Ho utilizzato CKEditor per l'aggiornamento del contenuto di CMS sul mio sito web. Ho anche utilizzando FontAwesome, che include set di icone di fantasia, che possono essere visualizzati come questoCKEditor ed elementi di fuga

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

Il problema è che CKEditor sfugge a questo i tag su lato client, e non riesco a vederlo in modalità sorgente.

Come posso consentire questo tag? Ho provato CONFIG.removeFormatTags = '', ma non muore aiuto.

+0

mi sono imbattuto lo stesso problema, leggete qui per una soluzione http://stackoverflow.com/a/18254082/ 1316372 – HenryW

risposta

10

Viene rimosso perché è vuoto. Metti un po 'di spazio senza interruzione &nbsp; o spazio a larghezza zero &#8203; al suo interno per preservare il tuo tag.

È inoltre possibile rimuoveredall'oggetto CKEDITOR.dtd.$removeEmpty. Ciò potrebbe tuttavia interrompere altri tag <i> vuoti senza class="icon-envelope". Per risolvere questo problema, è necessario giocare con un data processor per filtrare vuoto <i>'s senza class="icon-envelope". Abbastanza facile, credo.

+1

Non dovrebbe essere già gestito tramite config.fillEmptyBlocks che è impostato su true per impostazione predefinita? Come si modifica l'oggetto CKEDITOR.dtd. $ RemoveEmpty per rimuovere l'elemento i? Non riesco a trovarlo elencato come rimosso ovunque nei file js. Vorrei modificare la funzione fillEmptyBlocks per utilizzare ​ invece dello spazio non interrompibile. La spaziatura delle icone in font-awesome è corretta solo quando l'elemento rimane vuoto o utilizza ​ –

0

seguito ha lavorato per me .. grazie a Vince Kronlein sottolineando config.fillEmptyBlocks

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