2008-10-08 105 views
6

Estoy trabajando en una aplicación que se implementa como una HTA. Tengo una serie de enlaces que me gustaría tener abiertos en el navegador web predeterminado del sistema. El uso de <a href="url" target="_blank"> abre el enlace en IE independientemente del navegador predeterminado.¿Cómo puedo abrir un enlace en el navegador web predeterminado desde una HTA?

¿Hay alguna manera de utilizar el navegador predeterminado? Usar JavaScript es una opción.

Respuesta

20

Crea un shell e intenta ejecutar una URL.

Esto funciona para mí (guardar como whatever.hta y ejecutarlo) en mi sistema. Al hacer clic en el botón se abre Google en Firefox:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
<head> 
    <title>HTA Test</title> 
    <hta:application applicationname="HTA Test" scroll="yes" singleinstance="yes"> 
    <script type="text/javascript"> 
    function openURL() 
    { 
     var shell = new ActiveXObject("WScript.Shell"); 
     shell.run("http://www.google.com"); 
    } 
    </script> 
</head> 
<body> 

<input type="button" onclick="openURL()" value="Open Google"> 

</body> 
</html> 
+2

Esto solo funciona cuando se implementa en IE. No en Chrome o Firefox. – Siyah

+0

@Siyah Las HTA se ejecutan utilizando el motor de IE: http://en.wikipedia.org/wiki/HTML_Application#Execution –

+0

Deseo descargar un archivo que he creado usando blob. Cómo hacerlo en HTA. Está funcionando bien en cromo. Pero da error "Acceso denegado" en HTA – user2095748

-1

No, lamentablemente, creo que esta es una implementación específica del navegador que abrirá nuevos enlaces con target = "_ blank" en el mismo navegador.

Si quisiera abrirlo en el navegador predeterminado, entonces necesitaría interactuar con el sistema operativo, lo que JavaScript no puede hacer.

+2

JScript dentro de una HTA se ejecuta en la zona de seguridad "Local", por lo que puede acceder a una gran cantidad de SO, incluido ActiveX. – ephemient

+0

¡Gracias! No consideré ActiveX ... – Mark

Cuestiones relacionadas