ckeditor format html code
CKEditor elimina los atributos en lĂnea (5)
Enfrenté el mismo problema y la siguiente respuesta resolvió mi problema:
config.allowedContent = true;
config.extraAllowedContent = ''*(*);*{*}'';
config.extraAllowedContent = ''span;ul;li;table;td;style;*[id];*(*);*{*}'';
He estado usando CKEditor por algún tiempo y ha funcionado muy bien. Me he deshecho de cualquier problema que haya tenido, pero parece que no puedo resolver este. Cuando agrego atributos en línea a los elementos, por ejemplo, style = "color: #ff0;"
en una etiqueta <p></p>
se eliminan cuando cambio de wysiwyg a la vista de origen. No se ha guardado ni enviado nada y se ha agregado ckeditor a mi sitio, que es mi propio script. Cualquier idea sobre lo que causaría esto. Todos los resultados de búsqueda que puedo encontrar corresponden a este suceso en Drupal, pero Drupal parece ser el problema, no el editor en todos los casos. ¡Gracias de nuevo!
Hola, puedes detener ACF fácilmente. Por defecto, tu configuración es ---
function ckeditor($name,$value='''',$height=300){
return ''<textarea name="''.addslashes($name).''">''.htmlspecialchars($value).''</textarea>
<script>$(function(){CKEDITOR.replace("''.addslashes($name).''",{});});</script>'';
}
sólo tiene que añadir esto en los corchetes:
allowedContent: true
Ahora tu configuración será:
function ckeditor($name,$value='''',$height=300){
return ''<textarea name="''.addslashes($name).''">''.htmlspecialchars($value).''</textarea>
<script>$(function(){CKEDITOR.replace("''.addslashes($name).''",{allowedContent: true});});</script>'';
}
Para cualquiera que busque una muestra simple sobre cómo habilitar el marcado adicional en CKEditor sin deshabilitar completamente ACF, aquí hay un breve fragmento de código:
CKEDITOR.replace( ''editor1'', {
extraAllowedContent: ''style;*[id,rel](*){*}''
} );
config.extraAllowedContent aquí habilita el elemento <style>
, permite dos atributos adicionales (entre corchetes) para todos ( *
es un comodín) elementos ya permitidos, permite el uso de cualquier nombre de clase (*)
y permite el uso de cualquier estilo en línea {*}
Parece que estás usando CKEditor 4.1+ que viene con el Filtro de contenido avanzado (ACF) . Si es así, debe especificar config.allowedContent
y configurarlo para que sus cosas funcionen. También puede estar interesado en config.extraAllowedContent
.
Ver esta respuesta para más detalles.
Tuve el mismo problema, que ck eliminaba no solo algunos atributos, sino elementos enteros al pegar un elemento de bloque, dentro de un elemento de bloque (div con algunos atributos pegados dentro de ap) al usar este método:
editor.insertHtml(html);
lo que resolvió el problema fue usar esta solución alternativa en su lugar:
editor.insertElement(CKEDITOR.dom.element.createFromHtml(html));