Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2008, 11:42
Sanva
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 18 años, 4 meses
Puntos: 1
Crear editor WYSIWYG que de el mismo formato en distintos navegadores

Estoy planteándome el crear un editor WYSIWYG para un proyecto personal (y para saber hacerlo, que nunca estará de más en según qué proyectos para clientes).

Estoy utilizando el típico método de un iframe con designMode='on', pero me encuentro con el problema de que cada navegador crea el HTML según le parece.

Por ejemplo, si tienes el campo vacío y te pones a escribir, Firefox escribe texto plano pero incluyendo en lugar de cada salto de línea, un <br />. Sin embargo, si estás en un párrafo ya creado y pulsas intro, Firefox crea un nuevo párrafo por tí (osea, engloba las líneas con <p> y </p>). Este es también el comportamiento del IE y Opera, pero incluso ya con el campo en blanco, todo lo que escribas aparecerá en párrafos.Pero estos dos últimos insertan saltos de línea y ponen las etiquetas HTML en mayúsculas.

Podéis probar todo esto que os comento en http://spaweditor.com/en/disp.php/en...w/en_spaw_demo, por ejemplo, cambiando entre el modo de diseño y el modo HTML.

Espero haberme explicado bien. Las diferencias entre los navegadores harían necesario un trabajo (a parte del de las comprobaciones de seguridad) por parte del servidor para dar formato al texto y que sea igual independientemente del navegador utilizado por el usuario.

Pues bueno, buscando hoy casi toda la tarde me he encontrado con un editor WYSIWYG distinto: FCKEditor. Este editor me llama la atención porque crea el mismo código en IE y en Firefox (no soporta Opera, pero puede que sea por otras funcionalidades y no por esta, que es la que me interesa). Podéis probarlo (http://www.fckeditor.net/demo), y comprobaréis lo que digo: Escribiendo con el campo vacío crea párrafos (el Firefox lo hace mal), y sus etiquetas están en minúsculas (incluso utilizando IE).

Y ahora llega el momento de pediros ayuda, pues aunque el proyecto es Open Source, yo no tengo el nivel suficiente en JavaScript para encontrar el porqué de este comportamiento que tanto me interesa, ya que el proyecto es grande y complejo.

¿Alguna idea de como implementar este comportamiento?

Saludos, y gracias por vuestro tiempo