Saltar al contenido

Cómo evitar que ckeditor no agregue una etiqueta html en blanco

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?):

  1. Llenado automático de bloques vacíos. Esto se puede deshabilitar en la configuración:

    config.fillEmptyBlocks = false;
    
  2. Inserción automática al pulsar TAB-key. Esto se puede deshabilitar en la configuración:

    config.tabSpaces = 0;
    
  3. 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);
    
  4. 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.
    config.forcePasteAsPlainText = true;
    no ayuda

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *