No dudes en compartir nuestra web y códigos en tus redes sociales, danos de tu ayuda para aumentar nuestra comunidad.
Solución:
Eche un vistazo a esta publicación: CKEditor caracteres no deseados
Después de algunas investigaciones, podría arrojar algo de luz sobre este problema; desafortunadamente, no existe una solución lista para usar.
En el CKEditor hay cuatro formas en que puede ocurrir un espacio sin interrupción (alguien sabe mas?):
Llenado automático de bloques vacíos. Esto se puede deshabilitar en la configuración:
config.fillEmptyBlocks = false;
Inserción automática al pulsar TAB-key. Esto se puede deshabilitar en la configuración:
config.tabSpaces = 0;
Conversión de espacios dobles a ESPACIO+NBSP. Este es un comportamiento del navegador y, por lo tanto, el equipo de CKEditor no lo solucionará. Podría arreglarse en el servidor o mediante una descarga de JavaScript del lado del cliente. Tal vez este php es un comienzo:
preg_replace('/s s/i', ' ', $text);
Por copiar y pegar. Si pega un espacio sin interrupciones UTF-8 o espacios dobles, CKEditor lo convertirá automáticamente. La única solución que veo aquí es hacer una expresión regular como la anterior.
no ayuda
config.forcePasteAsPlainText = true;Resumen: para deshacerse de todos los espacios sin interrupciones, debe escribir una función adicional que limpie la entrada del usuario.
¡Se agradecen mucho los comentarios y otras sugerencias! (Estoy usando ckeditor 3.6.4)
EDITAR #1
Echa un vistazo a esto.
CKEDITOR.dtd.$removeEmpty.i= 0;
También puede usar esto con span y otras etiquetas.
La documentación a este.
Deja de eliminar CUALQUIER etiqueta vacía en CKEditor
Hay una lista definida de etiquetas que se eliminarán si están vacías (consulte dtd.js y $removeEmpty o ejecute CKEDITOR.dtd.$removeEmpty desde la consola).
- Desde HTML
Para asegurarse de que cierta etiqueta vacía no se elimine, agregue attribute
‘data-cke-survive’:
- Desde Configuraciones
O puede configurar la etiqueta particular para que no se elimine:
if(window.CKEDITOR) CKEDITOR.on('instanceCreated', function (ev) CKEDITOR.dtd.$removeEmpty['span'] = 0; CKEDITOR.dtd.$removeEmpty['TAG-NAME'] = 0;
Al establecer un elemento en 0 en CKEDITOR.dtd.$removeEmpty, evita que CKEditor elimine las etiquetas vacías.
http://margotskapacs.com/
Si entiendes que ha resultado útil este post, nos gustaría que lo compartas con más programadores y nos ayudes a extender este contenido.