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?

Author: Kosi2801, 2009-12-30

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

 75
Author: Maksymilian Majer,
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.

 32
Author: Michael Hellein,
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;
};
 9
Author: John W,
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!

 5
Author: PHPGuy,
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
    };
 3
Author: Timothy Nwanwene,
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]
 2
Author: derwiki,
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).

 1
Author: chim,
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);
}
 1
Author: Lars,
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
    };
 1
Author: Timothy Nwanwene,
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
 0
Author: Evan Ross,
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.

 -1
Author: Joe Schmucker,
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