Distriggers i tag che racchiudono in CKEditor 3.0

C’è la possibilità di distriggersre l’acclusione automatica di tutto il contenuto scritto all’interno di

​​

in CKEditor 3.x?

Provai

CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR; 

ma questo cambia semplicemente le interruzioni di riga inline per
lasciando il paragrafo che lo racchiude.

Attualmente la scrittura “Test” produce questa uscita

 

Test

ma voglio che sia semplicemente

 Test 

Esiste una proprietà di configurazione per questo o un altro editor in linea può essere più adatto per questo?

CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR; – Funziona perfettamente per me. Hai provato a svuotare la cache del browser, a volte è un problema.
Puoi anche verificarlo con l’adattatore jQuery:

    

AGGIORNAMENTO in base al commento di @ Tomkay:

Dalla versione 3.6 di CKEditor puoi configurare se vuoi che il contenuto in linea venga automaticamente avvolto con tag come

. Questa è l’impostazione corretta:

 CKEDITOR.config.autoParagraph = false; 

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

In Internet, le persone hanno notato che l’impostazione config.enterMode su CKEDITOR.ENTER_BR rimuove i tag di paragrafo wrapping da CKEditor. Vale la pena notare che l’impostazione modifica il comportamento del tasto Invio per inserire interruzioni di riga anziché paragrafi, il che non è desiderabile.

Vedi: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode “Si consiglia di utilizzare l’impostazione CKEDITOR.ENTER_P a causa del suo valore semantico e correttezza.”

Tuttavia, l’impostazione progettata per rimuovere quel paragrafo iniziale, config.autoParagraph, non è consigliabile, in quanto introduce “problemi di usabilità imprevedibili” perché l’editor desidera davvero un elemento di blocco di livello superiore.

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

La magia avviene su wysiwygarea / plugin.js, riga 410, dove l’editor seleziona l’elemento di blocco predefinito basato su config.enterMode. Un’opzione di configurazione per modificare l’elemento di blocco predefinito ci consentirebbe di iniziare con un div, ma continueremmo a ottenere più div con ogni premere invio, a meno che non abbiamo modificato il formato del paragrafo tramite il menu.

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

Sarebbe ansible rimuovere il tag del paragrafo wrapping con la post-elaborazione (sul server o nell’evento getData di CKEditor), ma questo ci porta allo stesso problema della distriggerszione di autoParagraph: non esiste un blocco di livello superiore.

Direi piuttosto che non c’è una buona soluzione, ma piuttosto una manciata di mezze soluzioni, piuttosto che accettare la modifica di config.enterMode come soluzione canonica.

Prova questo in config.js

 CKEDITOR.editorConfig = function( config ) { config.enterMode = CKEDITOR.ENTER_BR; config.shiftEnterMode = CKEDITOR.ENTER_BR; }; 

Trovato!

ckeditor.js line # 91 … cerca

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

cambiare a

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

Scarica la cache e BAM!

FAI QUESTO IL TUO codice del file config.js

 CKEDITOR.editorConfig = function( config ) { // config.enterMode = 2; //disabled 

completely config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input
config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input

config.autoParagraph = false; // stops automatic insertion of

on focus };

Sto facendo qualcosa di cui non sono orgoglioso come soluzione. Nel mio servlet Python che salva effettivamente nel database, lo faccio:

 if description.startswith('

') and description.endswith('

'): description = description[3:-4]

Modifica il sorgente (o distriggers il rich text) e sostituisci il tag p con un div. Poi stile il div come vuoi.

ckEditor non aggiungerà alcun elemento wrapper al successivo invio dato che hai il div in là.

(Questo ha risolto il mio problema, sto usando Drupal e ho bisogno di piccoli frammenti di html che l’editor ha sempre aggiunto, ma il resto del tempo voglio il tag p wrapping).

 if (substr_count($this->content,'

') == 1) { $this->content = preg_replace('/< \/?p>/i', '', $this->content); }

FAI QUESTO IL TUO codice del file config.js

 CKEDITOR.editorConfig = function( config ) { // config.enterMode = 2; //disabled 

completely config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input
config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input

config.autoParagraph = false; // stops automatic insertion of

on focus };

Imposta tale configurazione:

  CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR CKEDITOR.config.forcePasteAsPlainText = true 

In VS2015, questo ha funzionato per trasformare il tasto Invio in

 myCKEControl.EnterMode = CKEditor.NET.EnterMode.BR 

Personalmente, non mi interessa se il mio testo risultante ha solo
e non

. Rende perfettamente bene e sembra il modo in cui lo voglio. Alla fine, funziona.