zordon
28.09.2010, 10:20:53
Witam
Mam CMSa umożliwiającego edycję tekstów za pomocą CKEditora. Musiałem dodać podział tekstu na podstrony - rozwiązałem to za pomocą CKeditorowego pagebreak'a: użytkownik wstawia znak podziału strony, na podstawie którego rozdzielam tekst. Problem pojawił się w IE6 (oczywiście). Okazuje się, że IE6 po każdym pagebreaku dodaje jeszcze znak nowej linii "<p>
</p>". Problem w tym, że on ZAWSZE dodaje NOWY znak. Czyli jak gość 10 razy wejdzie w edycję i kliknie zapisz to będzie miał 10 "enterów". Będę chyba musiał wycinać te nadmiarowe entery za pomocą wyrażeń regularnych - wolałbym tego uniknąć tylko średnio mam pomysł jak. Grzebać w źródłach CKEditora też mi się nie uśmiecha...
Daiquiri
28.09.2010, 10:43:03
Powiem szczerze, że nie pamiętam czy to załatwia sprawę tylko <p></p> czy też z twardą spacją w środku, ale:
Kod
FCKConfig.IgnoreEmptyParagraphValue = true;
i
Kod
FCKConfig.FillEmptyBlocks = false;
w konfiguracji (fckeditor/fckconfig.js).
zordon
28.09.2010, 14:45:42
niestety, w wersji 3 CKeditora nie ma juz opcji FillEmptyBlocks (ponoć jest path). Naprowadziłeś mnie za to na pewien trop i rozwiązałem to w taki (mało elegancki) sposób, że ustawiłem opcję config.enterMode na CKEDITOR.ENTER_BR (domyślny tryb dodawania enterów na "<br />" zamiast "<p> </p>".
Rozwiązuje to problem tylko częściowo, bo jestem skazany na niesemantyczne "<br />" w każdej stronie, która będzie musiała korzystać z tego rozwiązania, natomiast nie tłumaczy dlaczego IE6 (i, jak się później okazało, inne młodsze potworki ze stajni M$) dodaje NOWE "<p> </p>" ZAWSZE po znaczniku nowej strony CKE, i, na ile mi wiadomo, TYLKO w tym miejscu.