2009-04-15 11 views
8

¿O están allí?¿Por qué no hay editores de texto enriquecido WYSIWYG en Flash/Silverlight/Lo que sea?

Desde el punto de vista del desarrollador de software de escritorio (opuesto, quizás, al de un desarrollador web), las plataformas de aplicaciones web enriquecidas, como Flash o Silverlight, parecen mejores herramientas para hacer editores de texto WYSIWYG para la web. Son capaces de una entrada/salida más sofisticada, representación de datos, etc., y son consistentes a través de los navegadores y plataformas (bueno, tal vez no Silverlight y Moonlight todavía, pero al menos Flash parece ser).

Aún así, los desarrolladores prefieren ir con Javascript/DOM/HTML/CSS con todas sus incompatibilidades, diferencias, trabajando diligentemente para resolver cada peculiaridad y usando numerosos hacks para hacer que estas tecnologías hagan lo que eran, tal vez nunca originalmente se supone que es capaz de hacer.

Existen algunos argumentos generalmente aceptados por los que no debe usar Flash para un sitio web, así como una excepción generalmente aceptada: los reproductores de video incrustados. ¿Cómo es diferente un editor de texto enriquecido? "Un flash control vive en su caja de arena aislada", así que, universalmente, tiene un editor WYSIWYG; "el texto de un control de flash no puede ser indexado por los motores de búsqueda"; de todos modos, a quién le importa indexar el siempre cambiante contenido no guardado de un editor; "no todos los usuarios pueden tener Flash instalado", por lo que no todos pueden tener Javascript habilitado tampoco.

Entonces, aquí la pregunta es: ¿cuáles son las ventajas de elegir Javascript sobre Flash para implementar un editor WYSIWYG? ¿Cuáles serían las desventajas de elegir lo contrario?

Respuesta

3

Las principales ventajas de un editor RTE implementado en JavaScript sobre los flash son:

  • No es necesario flash player para utilizar
  • mayoría de la gente no tiene Javascript desactivado
  • Son en general, más rica y tienen una mejor capacidad de
  • Las características adicionales como tablas embebidas, imágenes y el vídeo se puede ofrecer
  • Ellos pr oduzca salida HTML lista para use como contenido web

¿Está buscando construir este editor usted mismo? Debido a en general, las opciones disponibles para los editores de wysiwyg en javascript de hoy son bastante buenas. Verifique por ejemplo: fckeditor y tinymce. todos son bastante impresionantes y mejoran con cada versión y se pueden aplicar en una amplia gama de escenarios

Existe un soporte bastante bueno a través de divs y iframes contentmode/contenteditable en la mayoría de los navegadores modernos para construir estos elementos. Flex 3 viene con simplemente RichTextEditor que hará el trabajo, pero no es tan bueno.

+0

En cuanto a HTML, ¿está realmente listo? ¿Una salida HTML de un RTE escrito en, digamos, IE siempre será compatible con FF u Opera? – Headcrab

+0

hasta ahora ha sido mi experiencia, utilizando principalmente FCKeditor, que su HTML de salida se representa correctamente en todos los navegadores actuales. FCKeditor pretende funcionar incluso en IE5.5, aunque no hago nada antes que IE6 –

+0

OK, también han trabajado en la salida HTML. En cuanto a mi motivación, estaba tratando de crear un sistema de marcado de errores, imitando lo que hacen los maestros con las tareas de sus alumnos, marcándolos con tinta roja. Aquí hay un prototipo muy temprano: http://blog1.nuigurumi.webfactional.com/entry_id=0&action=show (solo funciona en FF, selecciona texto con el mouse para ver cómo funciona). – Headcrab

0

La razón principal se encuentra la mayor parte de ellos en la web en Javascript es en su mayoría la mayoría de los espacios económicos, que requieren entrada de texto de usuario (como blogs, foros, o stackoverflow) están construidos en HTML/Javascript. Entonces, cuando tienes programadores JS capaces de construir el 99% del sitio, ¿por qué traer un programador Flash para construir el otro 1%?

¡Pero eso no significa que no existan! Se reveló una búsqueda rápida en uno de los sitios de flash almacenados más populares 3:

RTE1 | RTE2 | RTE3

Y eso fue solo en FlashDen. Busque en FlashComponents.net o UltraShock.com, o simplemente busque en google y le garantizo que hay muchos más a la venta o de forma gratuita.

3

La razón principal (creo) es que hay una base lista para hacer una edición HTML enriquecida en los navegadores que usan JavaScript (designMode). Esto fue iniciado por Microsoft en IE 5.5 (hasta donde recuerdo) y luego recogido por Mozilla/Firefox, luego Opera y luego Safari. El navegador se ocuparía de mantener el árbol HTML DOM, permitiéndole navegar y modificarlo, etc. Puede crear un navegador HTML básico (y totalmente retrasado pero fijo) en el navegador casi sin código javascript. Y luego puedes construir características de eso (lo que la mayoría de los widgets javascript modernos han hecho).

En Flash/el desarrollador de Silverlight tendría que comenzar de cero e implementar todo esto. Y es difícil competir en esta área con los equipos de Microsoft/Mozilla/Opera/etc.

1

Técnicamente hablando, no hay nada que indique que no pueda realizar esta tarea ya que la mayoría de las capacidades RTF básicas, es decir, visuales, están en su lugar. Sin embargo, hay limitaciones, como el reflujo automático de imágenes/texto (es decir, si asigna una imagen y desea texto para envolverla, es un caso de manipulación de matemáticas + cadena + expresiones regulares.)

También podría usar Silverlight para todo excepto la ventana Rendered en sí (barras de herramientas, etc., que ayudarán con los iconos que faltan y ofrecen un control más finito sobre el manejo de excepciones que JS ofrece hoy). Esto le permitirá hacer uso de la ventana WYSIWYG (que está aprovechando realmente el navegador propio motor) y Silverlight representación de todas las demás necesidades.

estamos investigando cómo podemos activar esta funcionalidad en las versiones futuras por lo que no está cayendo en oídos sordos.

Scott Barnes/Rich Platforms Product Manager/Microsoft.

1

JavaScript RTE de se convertirá en un estándar web porque contentEditable está en el HTML 5 Especificación W3. El método actual para JavaScript RTE es establecer designMode en "on" en los atributos del documento. El problema es que todo el documento se puede editar, por lo que encontrará que la mayoría de los RTE de JavaScript cargan el editor a través de un iFrame, lo que permite que el documento del iFrame tenga el modo de diseño en "activado" y no el documento principal.

Una desventaja de las RTE de JavaScript actualmente disponibles es lo complejo que es modificar la interfaz de usuario para insertar imágenes (si esto es importante para usted). Personalmente, no me importan las interacciones integradas, pero supuestamente si pasas suficiente tiempo leyendo la documentación, puedes modificarla como quieras. Por ejemplo, mire la característica de inserción de imagen de TinyMCE en su demostración, y luego inicie WordPress y vea cómo lo han modificado. (WordPress usa TinyMCE).

No he realizado ninguna prueba, pero simplemente "parece" que escribir en un texto de acción parece más lento. Otro problema al que me estoy enfrentando es la posibilidad de agregar imágenes y moverlas en el artículo.Incluso en Adobe AIR, supuestamente usa el motor de renderizado WebKit, así que intenté hacer una RTE usando JavaScript, que funciona bien en el navegador Safari (también usa WebKit), pero cuando se carga a través de AIR se comporta de manera diferente.

En general, no hay muchas soluciones realmente buenas, esto tiene mucho que ver con contentEditable no siendo un estándar implementado en la mayoría de los navegadores (aún), y con scripts excesivamente complejos para los RTE disponibles actualmente.

Para ver de JavaScript RTE:

TinyMCE, FCKEditor (CKEditor), de YUI 2 Editor, y hay pocos, si quieres liar, buscar tutoriales sobre execCommand() que básicamente es el código JavaScript método que modifica elementos seleccionados o inserta elementos en una región editable de contenido.

Para Flash ... No sé, no hay muchas implementaciones buenas, incluso el Flex Text Editor es algo básico y limitado. El inconveniente principal y esto es para ambas plataformas, es cuán fácil es modificar e insertar imágenes, porque hacer cosas básicas como texto en negrita o cursiva es simple.

1

La ventaja principal de un editor de Javascript es que Javascript ofrece muchas más posibilidades para la creación de elementos HTML avanzados (tablas, líneas horizontales, listas ordenadas y elementos de formulario). Sin embargo, la mayoría de esos editores se crean utilizando designmode y iframes contenteditable. Esto significa que la generación real de código está ocurriendo por el navegador y no por javascript. cada navegador puede generar html diferentes y eso puede ser no deseado.

Un editor flash tiene menos capacidades y requiere flash, pero probablemente sea la solución perfecta para sitios web flash. Las diferencias html en los editores javascript pueden ser muy molestas, y las características que flash-html no admite no deberían estar en ese editor javascript. Flash también genera otras etiquetas que no se utilizan en html, por ejemplo: la etiqueta <textformat> solo se usa en flash-html/htmltext.

Tuve este problema en el que no pude encontrar un editor que generara todos los archivos flash-html posibles sin los problemas de un editor de JavaScript. Así que creé uno que se puede encontrar en:
http://www.flashcomponents.net/component/hcs-rich-text-editor.html
Genera flash-html, y si es necesario también válido (x) html sin ninguna diferencia en el navegador.

En resumen, para los sitios web que no se basan en flash probablemente desee un editor de JavaScript porque tiene más posibilidades. Para los sitios web flash que desea un editor de texto enriquecido basado en flash para generar código flash-html con etiquetas especiales como <textformat>.

Cuestiones relacionadas