Wyłącz załączanie tagów w CKEditor 3.0
Czy jest możliwość wyłączenia automatycznego zamykania wszystkich zapisanych treści w
w Ckeditorze 3.x?Próbowałem
CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;
Ale to tylko zmienia inline linebreaks na
opuszczając załączający akapit.
Obecnie pisząc "Test" generuje to wyjście
<p>
Test</p>
Ale chcę, żeby to było po prostu
Test
Czy istnieje dla tego właściwość konfiguracyjna, czy też inny edytor inline byłby do tego lepiej dostosowany?
11 answers
CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;
- dla mnie to działa idealnie.
Czy próbowałeś wyczyścić pamięć podręczną przeglądarki - czasami jest to problem.
Możesz również sprawdzić to za pomocą adaptera jQuery:
<script type="text/javascript" src="/js/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="/js/ckeditor/adapters/jquery.js"></script>
<script type="text/javascript">
$(function() {
$('#your_textarea').ckeditor({
toolbar: 'Full',
enterMode : CKEDITOR.ENTER_BR,
shiftEnterMode: CKEDITOR.ENTER_P
});
});
</script>
Aktualizacja zgodnie z komentarzem @ Tomkay:
Od wersji 3.6 CKEditor możesz skonfigurować, jeśli chcesz, aby zawartość wbudowana była automatycznie owijana tagami takimi jak <p></p>
. To jest poprawne ustawienie:
CKEDITOR.config.autoParagraph = false;
Źródło: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-24 09:17:55
W Internecie ludzie zauważyli, że ustawienie config.enterMode do CKEDITORA.ENTER_BR usuwa znaczniki akapitu zawijania z CKEditor. Warto zauważyć, że ustawienie zmienia zachowanie klawisza enter, aby wstawiać podziały wierszy, a nie akapity, co nie jest pożądane.
Zobacz: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode "zaleca się stosowanie CKEDITORA.Ustawienie ENTER_P ze względu na jego wartość semantyczną i poprawność."
Jednak ustawienie, które ma na celu usunięcie tego początkowego akapitu, config.autoParagraph również nie jest wskazane, ponieważ wprowadza "nieprzewidywalne problemy z użytecznością", ponieważ edytor naprawdę chce najwyższego poziomu elementu blokowego.
Zobacz: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph
Magia dzieje się na wysiwygarea / plugin.js, linia 410, gdzie edytor wybiera domyślny element blokowy na podstawie config.enterMode. Opcja konfiguracyjna zmiany domyślnego elementu blokowego pozwoli nam zacząć od div, ale będziemy nadal otrzymywać więcej divów z każdym naciśnięciem klawisza enter, chyba że zmienimy format akapitu za pomocą menu.
Zobacz: http://docs.cksource.com/ckeditor_api/symbols/src/plugins_wysiwygarea_plugin.js.html
Możliwe byłoby usunięcie znacznika akapitowego zawijania za pomocą post-processingu( na serwerze lub w zdarzeniu getData Ckeditora), ale to prowadzi nas do ten sam problem co wyłączenie autoParagraph: nie ma bloku najwyższego poziomu.
Wolałbym raczej powiedzieć, że nie ma dobrego rozwiązania, a raczej garść pół-rozwiązań, niż zaakceptować zmianę config.enterMode jako rozwiązanie kanoniczne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-06 16:57:54
Spróbuj tego w config.js
CKEDITOR.editorConfig = function( config )
{
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_BR;
};
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-07 16:30:18
Znalazłem!
Ckeditor.js line # 91 ... Szukaj
B.config.enterMode==3?'div':'p'
Zmień na
B.config.enterMode==3?'div':''
(NIE!)
Wyrzuć swoją pamięć podręczną i BAM!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-13 16:35:07
Niech to będzie twoja konfiguracja.Kod pliku js
CKEDITOR.editorConfig = function( config ) {
// config.enterMode = 2; //disabled <p> completely
config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input <br/>
config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input <p>
config.autoParagraph = false; // stops automatic insertion of <p> on focus
};
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-28 03:02:47
Robię coś, z czego nie jestem dumny. W moim Serwletie Pythona, który faktycznie zapisuje się do bazy danych, robię:
if description.startswith('<p>') and description.endswith('</p>'):
description = description[3:-4]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-05 22:53:53
Edytuj źródło (lub wyłącz tekst bogaty) i zamień znacznik P na div. Następnie styl div w dowolny sposób, w jaki chcesz.
CkEditor nie doda żadnego elementu wrappera przy następnym przesłaniu, ponieważ masz tam div.
(to rozwiązało mój problem, używam Drupala i potrzebuję małych fragmentów html, które edytor zawsze dodawał dodatkowe, ale przez resztę czasu chcę owijać znacznik p).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-13 12:07:35
if (substr_count($this->content,'<p>') == 1)
{
$this->content = preg_replace('/<\/?p>/i', '', $this->content);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-01 17:41:24
Niech to będzie twoja konfiguracja.Kod pliku js
CKEDITOR.editorConfig = function( config ) {
// config.enterMode = 2; //disabled <p> completely
config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input <br/>
config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input <p>
config.autoParagraph = false; // stops automatic insertion of <p> on focus
};
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-28 02:36:04
Ustaw taki config:
CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR
CKEDITOR.config.forcePasteAsPlainText = true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-22 13:07:18
W VS2015 zadziałało, aby zmienić klawisz Enter na <br>
myCKEControl.EnterMode = CKEditor.NET.EnterMode.BR
Osobiście nie obchodzi mnie, czy mój tekst wynikowy ma tylko <br>
, a nie <p>
. Wygląda idealnie i wygląda tak, jak chcę. W końcu to działa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-15 13:37:56