Slå av omsluttende <p> koder i CKEditors 3,0

stemmer
57

Er det en mulighet for å slå av den automatiske omsluttende av alt skriftlig innhold innenfor <p> </ p> i CKEditors 3.x?

jeg prøvde

  CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;

men dette endrer inline linjeavstand til <br /> samtidig la omsluttende ledd.

Tiden skriver Test produserer denne produksjonen

<p>
    Test</p>

men jeg vil at det skal være enkelt

Test

Er det en konfigurasjonsegenskapen for dette, eller ville en annen inline editor for å være bedre egnet for dette?

Publisert på 29/12/2009 klokken 22:28
kilden bruker
På andre språk...                            


11 svar

stemmer
2

Jeg gjør noe jeg ikke er stolt av som midlertidig løsning. I min Python servlet som faktisk sparer til databasen, jeg gjør:

if description.startswith('<p>') and description.endswith('</p>'):
    description = description[3:-4]
Svarte 05/03/2010 kl. 20:53
kilden bruker

stemmer
74

CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;- dette fungerer perfekt for meg. Har du prøvd å slette nettleserens cache - dette er et problem noen ganger.
Du kan også sjekke det ut med jQuery adapter:

<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>


UPDATE henhold til @ Tomkay kommentar:

Siden versjon 3.6 av CKEditors kan du konfigurere hvis du ønsker inline-innhold automatisk skal pakkes med tagger som <p></p>. Dette er den riktige innstillingen:

CKEDITOR.config.autoParagraph = false;

Kilde: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph

Svarte 21/04/2010 kl. 13:10
kilden bruker

stemmer
1
if (substr_count($this->content,'<p>') == 1)
{
  $this->content = preg_replace('/<\/?p>/i', '', $this->content);
}
Svarte 16/06/2010 kl. 13:36
kilden bruker

stemmer
5

Funnet det!

ckeditor.js linjen # 91 ... søket etter

B.config.enterMode==3?'div':'p'

endre til

B.config.enterMode==3?'div':'' (NO P!)

Dump bufferen og BAM!

Svarte 07/01/2011 kl. 21:42
kilden bruker

stemmer
9

Prøv dette i config.js

CKEDITOR.editorConfig = function( config )
{
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_BR;
};
Svarte 07/03/2011 kl. 11:51
kilden bruker

stemmer
32

Over internett, har folk lagt merke til at innstillingen config.enterMode å CKEDITOR.ENTER_BR fjerner innpakning ledd koder fra CKEditors. Det er verdt å merke seg at innstillingen endrer oppførselen enter-tasten for å sette inn linjeskift i stedet for avsnitt, som ikke er ønskelig.

Se: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode "Det anbefales å bruke CKEDITOR.ENTER_P innstilling på grunn av sin semantiske verdi og korrekthet."

Men den innstillingen som er utviklet for å fjerne det første avsnittet, config.autoParagraph, er ikke tilrådelig heller, som det introduserer "uforutsigbare brukervennlighet problemer" fordi redaktøren virkelig ønsker en blokk element toppnivå.

Se: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph

Magien skjer på wysiwygarea / plugin.js, linje 410, hvor redaktøren Velger standard blokk element basert på config.enterMode. En config alternativet for å endre standard blokk element ville tillate oss å starte med en div, men vi vil fortsette å få flere divs med hver skriv pressen, med mindre vi endret avsnittet format via menyen.

Se: http://docs.cksource.com/ckeditor_api/symbols/src/plugins_wysiwygarea_plugin.js.html

Det vil være mulig å fjerne innpakningen avsnittet tag med etterbehandling (enten på serveren eller i CKEditors er GetData hendelse), men som fører oss inn i det samme problemet som deaktiverer autoParagraph: det er ingen toppblokk.

Jeg vil heller si at det ikke er en god løsning, men snarere en håndfull halv løsninger, enn å akseptere endring config.enterMode som kanoniske løsning.

Svarte 06/01/2012 kl. 13:57
kilden bruker

stemmer
1

Redigerer kilden (eller slå av rik tekst) og erstatte p-taggen med en div. Deretter style div noen hvilken vei du vil.

CKEditors vil ikke legge noen wrapper element på neste sender som du har fått div der.

(Dette løste mitt problem, jeg bruker Drupal og trenger små utdrag av html som redaktøren alltid lagt ekstra, men resten av tiden jeg vil at innpakning p tag).

Svarte 13/12/2012 kl. 09:07
kilden bruker

stemmer
1

Gjør dette til din config.js arkivkode

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
    };
Svarte 28/04/2015 kl. 01:36
kilden bruker

stemmer
3

Gjør dette til din config.js arkivkode

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
    };
Svarte 28/04/2015 kl. 02:02
kilden bruker

stemmer
0

Sett slik config:

    CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR
    CKEDITOR.config.forcePasteAsPlainText = true
Svarte 22/08/2017 kl. 12:07
kilden bruker

stemmer
-1

I VS2015, jobbet på denne for å slå på Enter-tasten i <br>

myCKEControl.EnterMode = CKEditor.NET.EnterMode.BR

Personlig, jeg bryr meg ikke om min resulterer tekst bare har <br>og ikke <p>. Det gjør helt fint, og det ser ut slik jeg vil ha det til. Til slutt, det fungerer.

Svarte 15/09/2017 kl. 12:37
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more