2010-08-19 30 views
8

¿Alguien sabe si hay una herramienta que puede convertir html a javascript?convertir html a javascript

Por ejemplo:

<div> 
</div> 

se convertiría en

aDiv = document.createElement('div'); 
document.appendChild(aDiv); 

etc

Me estoy haciendo un par de plantillas HTML para los componentes de interfaz de usuario y la estoy usando MooShell para la creación de prototipos. Sería genial poder generar automáticamente el javascript que construirá el html del componente.

Gracias

+1

Interesante pregunta. Creo que jQuery debe tener un motor de análisis integrado para esto, ya que puede aceptar comandos como '$ ("

")' para construir objetos DOM. Tal vez hay información adicional allí. –

+1

Idea interesante, pero tenga en cuenta que las repetidas transacciones DOM, especialmente para grandes jerarquías, pueden ser costosas. – Konrad

+0

¿Y si los documentos no validan? De todos modos, se puede lograr "fácilmente" con la corrección de fuerza bruta :) –

Respuesta

0

Si no había tal herramienta (que yo creo que es altamente el caso), me gustaría resolver este problema de la misma buena manera antigua: construir mi propio analizador.

-2

No estoy seguro de su situación, pero si tiene componentes en HTML deberían tener eventos, identificaciones y encuadernación ... Así que no creo que haya una secuencia de comandos genio similar a la humana que pueda generar este código . Añadir a eso, su problema es muy específico. Puede estar en algún lugar de alguna corporación de TI, pero no es algo que los desarrolladores web utilicen a diario como jQuery.

0

Veo que otras personas le han dado muchos consejos sobre cómo hacer esto, pero mis dos centavos en una cosa a tener en cuenta.

Si está insertando/quitando/modificando elementos hacia/desde el DOM utilizando Javascript del lado del cliente, notará que con un marco como jQuery, no podrá llamar y manipular los elementos DOM que ha agregado en sobre la marcha.

La mejor manera de solucionar esto es buscar utilizando el plugin jQuery Live.

0

El Marco PrototypeJS tiene un método insert(), que es capaz de analizar el código HTML, por lo que se puede hacer algo como:

$$('body')[0].insert(stringWithYourHTMLCode); 

O definir un contenedor para su contenido:

$('containerId').insert(stringWithYourHTMLCode); 
+0

Eso no es lo que está preguntando. – Chris

2

Sugiero echar un vistazo a John Resig's pure javascript HTML parser. Consiste en un analizador de estilo SAX para HTML e incluye un serializador XML, un creador DOM y un creador DOM. Cada uno toma una cadena de HTML como entrada.

En particular, el método HTMLtoDOM podría reutilizarse fácilmente para devolver la cadena de javascript requerida para construir el DOM para cualquier cadena de entrada de HTML.