Problem polega na tym, że usuwasz znaczniki otwierające i zamykające końcowy przed zapisaniem w DB, który pozostawia niedopasowane znaczniki HTML i dlatego nieprawidłowy HTML (... gdy masz więcej niż jeden blok p
). Więc
<p>Something</p>
<p>Something else</p>
staje:
Something</p> // invalid html - closing tag with no corresponding opening tag
<p>Something else // invalid html - opening tag with no corresponding closing tag
CKEditor jest rzeczywiście próbuje naprawić nieprawidłowy HTML dla ciebie, gdy ładowane z powrotem do edytora.
Jeśli nie chcesz akapitów tagów Sugerowałbym użyciu opcji config config.autoParagraph = false;
i/lub config.enterMode = CKEDITOR.ENTER_BR;
(CKEditor użyje <br />
zamiast gdy użytkownik wpisze nową linię) tylko w zależności od wymagań.
Innym możliwym rozwiązaniem byłoby, aby zmienić swoją funkcję przed zapisać zrobić znajdowania i zamieniania wszystkich wystąpień '<p>'
z ''
i '</p>'
z '<br />'
, przed podjęciem ostatecznej Usuń którejkolwiek spływu '<br />'
.
Kroki powielać problem:
A. można przejść do http://sdk.ckeditor.com/samples/accessibilitychecker.html i kliknąć w przycisk Source
i wklej następujący:
<p>Something</p>
<p>Something else</p>
B. Kliknij Source
i wyświetli ten html poprawnie.
C. Kliknij Source
ponownie, aby wrócić do trybu źródłowego i tylko 2 p
elementy pokaże
D. Wyjąć otwarcia akapitów i znaczniki zamykające akapicie:
Something</p> // invalid html - closing tag with no corresponding opening tag
<p>Something else // invalid html - opening tag with no corresponding closing tag
E kliknij na Source
dwa razy, aby wyrenderować wyjście, a następnie, aby zobaczyć dostosowane źródło:
<p>Something</p>
<p> </p>
<p>Something else</p>
Jonathan, nie jest jasne, jak przedstawiciel zgłosić problem. Co dokładnie robisz, aby dodać ten pusty akapit? – SergGr
Mam stronę admin Django. Kilka reprezentowanych pól otrzymuje widget TEXTAREA. Udało mi się hijaxować te pola, po zaimportowaniu programu CKeditor, wywołując pętlę iterującą po TEXTAREA za pomocą '' CKEDITOR.replace (textareas [index] .name); ''. – JonathanHayward
Jeśli mam tylko jeden akapit, wszystko działa świetnie. Jeśli podzielę linię na dwa akapity i kliknę "Zapisz i kontynuuj edytowanie", przeniesie mnie ona do stron z pustym akapitem oddzielającym je; następnie za każdym razem otrzymuję jeden dodatkowy pusty akapit, klikając "Zapisz i kontynuuj edytowanie" lub równoważny. – JonathanHayward