5

Używam CKEditor do aktualizacji zawartości CMS na mojej stronie. Ja też za pomocą FontAwesome, który obejmuje zestaw fantazyjnych ikon, które mogą być wyświetlane jak tenElementy CKEditor i escaping

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

Problem polega na tym, że ten i CKEditor ucieka tag na stronie klienta, a nie widzę go w trybie źródłowym.

Jak mogę zezwolić na ten tag? Próbowałem CONFIG.removeFormatTags = '', ale nie umiera.

+0

natknąłem się na ten sam problem, przeczytaj tutaj rozwiązania http://stackoverflow.com/a/18254082/ 1316372 – HenryW

Odpowiedz

10

Jest usuwany, ponieważ jest pusty. Umieść w nim nieuszkodzącą przestrzeń &nbsp; lub zerową szerokość &#8203;, aby zachować swój tag.

Można również usunąć obiekt i z obiektu CKEDITOR.dtd.$removeEmpty. Może to jednak złamać inne puste tagi <i> bez class="icon-envelope". Aby to naprawić, musisz grać z data processor, aby filtrować pusty <i>'s bez class="icon-envelope". Całkiem łatwe, jak sądzę.

+1

Czy nie powinno to być obsługiwane przez config.fillEmptyBlocks, które domyślnie ma wartość true? Jak można edytować obiekt CKEDITOR.dtd. $ RemoveEmpty, aby usunąć element i? Nie mogę znaleźć go jako usuniętego w dowolnym miejscu w plikach js. Chciałbym edytować funkcję fillEmptyBlocks, aby używać ​ zamiast spacji nierozdzielającej. Odstępy ikon w font-awesome są poprawne tylko wtedy, gdy element pozostaje pusty lub używa ​ –

0

poniżej pracował dla mnie .. dzięki Vince Kronlein wskazując config.fillEmptyBlocks

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