2009-06-14 6 views

Respuesta

10

No puede.

Hay un proyecto similar de Mozilla llamado XULRunner, pero HTA solo funciona en Internet Explorer: las dos tecnologías no son compatibles.

Para dejar esto en claro: HTA probablemente no funcionará en cualquier cosa que no sea IE. Sí, HTA es un control de navegador en una ventana, pero también tiene privilegios de aplicación normales (es decir, acceso al sistema de archivos, registro, ejecución de código arbirary, etc.). Cuando se ejecuta en un navegador, estos privilegios son denegados (por buenas razones: no desea que cualquier página web lea sus archivos).

Por lo tanto, lanzar la HTA en un navegador funcionará, pero cualquier interacción con el sistema local fallará, lo que anula la idea. Lanzar una HTA en XULRunner también fallará, porque XULRunner usa una API completamente diferente.

El único escenario que podría funcionar es esto: una aplicación web que no utiliza ninguna de las API específicas de HTA o XULRunner (es decir, se comporta como una aplicación de navegador normal). En tal caso, su aplicación podría funcionar con HTA, XULRunner, así como en cualquier navegador. Dicho sea de paso, esto eliminaría cualquier ventaja del uso de HTA e introduciría agujeros de seguridad masivos debido a los privilegios más altos; sería mejor usar Google Chrome o Mozilla Prism para eso.

(que hemos estado tratando de encontrar una solución multi-navegador desde hace algún tiempo, y la HTA es definitivamente no es)

0

Creo hospedaje de aplicaciones HTA de Internet Explorer funciona porque su anfitrión HTA se ha registrado para manejar el extensión. Si este es realmente el caso, entonces en theroy podría usarse otro host

En aras de la integridad, debo tener en cuenta que no tengo experiencia en el desarrollo de aplicaciones HTA y estoy basando mi respuesta en mi comprensión del sistema operativo Windows

2

No es tanto que IE aloje nada, sino que mshta.exe aloja componentes que comparte con IE. MSHTA es un host de script , del mismo modo que CScript y WScript. Mientras que IE también es un host de script (en el sentido más estricto), su objetivo principal es ser un navegador web.

El proyecto de Mozilla mencionado anteriormente es la alternativa más cercana que he encontrado que se basa en las entrañas de un navegador.

Existen otros hosts de script para Windows. Uno de ellos es NS Basic/Desktop pero está basado en controles estándar de Windows, no en la representación del navegador y en un DOM HTML.

6

Estaba abordando la tarea relacionada de ejecutar hta's desde varios navegadores. He puesto mis hallazgos aquí para cualquier otra persona que esté tratando de hacer eso y encuentra esta pregunta.

Puede ejecutar hta's desde varios navegadores, utilizando el mismo ejecutable mshta que utiliza IE. Necesita URI totalmente calificado en su código hta, que no es necesario de IE.

Hoy (2011-02-01) Me trató de usar de HTA de Firefox (3.6.13), Opera 11 y Safari 5.0.3 para Windows.

Después de algunos problemas iniciales en Firefox Tengo hta's para trabajar desde esos navegadores. (En todos los casos se trata de utilizan el mismo ejecutable mshta que utiliza IE. Esto es correr no de HTA en otros navegadores, pero el funcionamiento de otros navegadores de HTA. Esto podría adaptarse a sus propósitos.)

El hta comenzó las aplicaciones de escritorio en mi máquina (como lo hace desde IE).

La experiencia no fue perfecta. Para IE, establezco rutas relativas de raíz en hta. Para los otros navegadores no puedes hacer eso. Necesita establecer URI totalmente calificados para cosas como imágenes, hta e íconos referenciados.

Así que después de una pequeña edición tengo la hta trabajando desde 4 navegadores (IE 8, FF 3, Opera 11 y Safari 5 (Windows)).

(Instantánea de eso. Estoy ejecutando hta's desde un servidor web en la máquina local. (No tengo planes de ejecutarlos desde sitios remotos). Esto permite que mi flujo de trabajo pase más fácilmente del navegador al escritorio .Hta genera aplicaciones locales que hacen cosas como editar páginas web (incluidas las propias hta), validan esas páginas y activan IDE. Cerrar la brecha entre el navegador y las aplicaciones de escritorio ha sido una experiencia liberadora. ¡Lo recomiendo!)

Notas:

  1. El equipo de desarrollo de Firefox tiene notas sobre la habilitación de hta, lo que me animó a continuar después de la falla inicial.
  2. Para lograr esto en configuración de Firefox puse aplicaciones HTML para ejecutarse en mshta.exe(llamado Host aplicación HTML Microsoft, en el cuadro combinado). Inicialmente eso no funcionó. Seleccioné "otro" elegí la misma aplicación a mano. ¡Eso funcionó, aunque tengo dos entradas de aspecto idéntico! Necesita mshta.exe en su máquina para ejecutar cualquier navegador. Supongo que la forma normal de instalar mshta es con IE. (mshta es esencialmente una versión modificada del IE, posiblemente no la versión actual!)
  3. Los desarrolladores de Firefox han marcado esto como un esfuerzo estratégico para desalojar IE de la Empresa. Su implementación (y la de Opera) lo obligan a utilizar URI totalmente calificados, pero aparte de eso, el trabajo de la hta es el esperado.
  4. Firefox parece caché caché de versiones anteriores, y no descarga nuevas, aunque parece que descarga algo! Es posible que deba borrar la caché durante el desarrollo.
  5. Mi primer intento de hacerlo con Chrome no fue exitoso. La investigación adicional sugiere Chrome no tiene una interfaz nativa para invocar otros procesos, en función de su extensión de archivo.
Cuestiones relacionadas