javascript - sistemas - estructura de carpetas de un sitio web
Abrir una carpeta/directorio del sistema de archivos desde el navegador web (2)
Este código JS debería funcionar para IE y Firefox en Windows, siempre que la página se haya cargado desde el sistema de archivos local. Debería probar esto en Linux / OSX. No sé cómo te acercarías a Chrome / Safari / Opera.
function execute(command, commandParam)
{
if (isIE()) {
try {
activexShell = new ActiveXObject("Shell.Application");
activexShell.ShellExecute(command, commandParam, "", "open", "1");
exit();
} catch (e) {
alert("exception " + e.name + '': '' + e.message);
}
}
else {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var FileFactory = new Components.Constructor("@mozilla.org/file/local;1","nsILocalFile","initWithPath");
var program = new FileFactory(command);
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces. nsIProcess);
process.init(program);
process.run(false, commandArray, commandParam.split(" ").length - 1, {});
exit();
} catch (e) {
alert("exception " + e.name + '': '' + e.message);
}
}
}
Por supuesto, puede necesitar firmar el archivo .js para que funcione. Para obtener más información, consulte aquí: http://www.mozilla.org/projects/security/components/signed-scripts.html
Distribuyo mi aplicación de escritorio en memorias USB a miles de usuarios en Windows, Mac y Linux. Tengo una página de inicio HTML que tiene enlaces a la documentación, guía de instalación, notas de la versión, etc. que están todos en la unidad flash. Me encantaría que el usuario simplemente instale directamente desde el navegador, pero eso es exactamente lo que los programas antivirus están tratando de evitar (y con razón). En lugar de intentar iniciar el instalador, es suficiente ubicar el instalador y dejar que el usuario dé el último paso por sí mismo.
¿Es posible hacer que el administrador del sistema de archivos (Explorer, Finder, etc.) en la computadora host abra la carpeta que contiene el archivo y lo resalte? Supongo que esto requeriría JavaScript y probablemente tendría que ser diferente para Windows, Mac y Linux. Además, funciona en la mayoría de los navegadores (IE, FF, Chrome, Safari, Opera).
¿Está esto en una escala de dificultad similar para resolver el último teorema de Fermat?
Gracias
Nop. Los navegadores (o la mayoría *) evitan este tipo de comportamiento. Tienen un muro entre su sistema de archivos real y el contenido que le brinda la Web. Solo el control de entrada HTML lo rompe, y también tienen bastante protección alrededor de eso.
* - Puede usar un control IE ActiveX, pero eso es solo para IE.