Utilizzo CKEditor da un po 'di tempo e ha funzionato benissimo. Mi sono praticamente sbarazzato di tutti i problemi che ho avuto ma questo non riesco a capire. Quando aggiungo attributi in linea agli elementi, ad esempio style = "color: #ff0;"
su un tag <p></p>
, vengono rimossi quando cambio da wysiwyg a vista sorgente. Nessun salvataggio o invio è stato fatto e ckeditor è stato aggiunto al mio sito che è il mio script. Qualche idea su cosa potrebbe causare questo. Tutti i risultati di ricerca che riesco a trovare corrispondono a questo evento in Drupal ma Drupal sembra essere il problema non l'editor in tutti i casi. Grazie ancora!CKEditor strisce attributi in linea
risposta
Sembra che tu stia utilizzando CKEditor 4.1+ fornito con Advanced Content Filter (ACF). In tal caso, devi specificare config.allowedContent
e configure it per far funzionare le tue cose. Potresti anche essere interessato a config.extraAllowedContent
.
Vedere this answer per ulteriori dettagli.
I collegamenti appaiono interrotti. La documentazione è disponibile su http://docs.ckeditor.com/ per gli interessati. – Nenotlep
@Nenotlep I collegamenti sembrano funzionare correttamente. Riprova e conferma per favore. – oleq
Ancora non funziona. Per me tutti i collegamenti sembrano "http: //ckeditor-docs.t/#!/...", che ovviamente fallisce. Sia IE che Chrome. – Nenotlep
Per chi cerca un semplice esempio su markup aggiuntivo come abilitata a CKEditor senza disabilitare completamente ACF, ecco un breve frammento:
CKEDITOR.replace('editor1', {
extraAllowedContent: 'style;*[id,rel](*){*}'
});
extraAllowedContent qui permette l'elemento <style>
, permette due attributi aggiuntivi (in parentesi quadre) per tutti (*
è un jolly) elementi già autorizzati, consente l'utilizzo di tutti i nomi di classe (*)
per loro e consente l'utilizzo di eventuali stili inline {*}
hi si può fermare ACF facilmente. Per impostazione predefinita, il tuo configaration è ---
function ckeditor($name,$value='',$height=300){
return '<textarea name="'.addslashes($name).'">'.htmlspecialchars($value).'</textarea>
<script>$(function(){CKEDITOR.replace("'.addslashes($name).'",{});});</script>';
}
solo aggiungere questo nelle parentesi graffe:
allowedContent: true
ora la configurazione sarà:
function ckeditor($name,$value='',$height=300){
return '<textarea name="'.addslashes($name).'">'.htmlspecialchars($value).'</textarea>
<script>$(function(){CKEDITOR.replace("'.addslashes($name).'",{allowedContent: true});});</script>';
}
Questo ha funzionato con me! Grazie! – Phuong
ho avuto lo stesso problema, che ck stava rimuovendo non solo alcuni attributi, ma interi elementi quando si incolla un elemento di blocco, all'interno di un elemento di blocco (div con alcuni attributi incollati all'interno di ap) mentre si utilizza questo metodo:
editor.insertHtml(html);
ciò che ha risolto il problema stava usando questa soluzione invece:
editor.insertElement(CKEDITOR.dom.element.createFromHtml(html));
Ho affrontato lo stesso problema e sotto risposta risolto il mio problema:
config.allowedContent = true;
config.extraAllowedContent = '*(*);*{*}';
config.extraAllowedContent = 'span;ul;li;table;td;style;*[id];*(*);*{*}';
Anche l'editor è stato configurato in modalità fullpage che mi permette di aggiungere '' ma gli attributi inline sono ancora spogliati. – tiantang