Refactorizando el antiguo código javascript, ¿cuál es un reemplazo efectivo para el siguiente código ActiveX? Solo tener la capacidad de escribir un archivo local.
function WriteToFile(bufObj, fileName) { var fileObj; fileObj = new ActiveXObject("Scripting.FileSystemObject"); fileObj = fileObj.OpenTextFile(fileName, ForWriting, true, TristateMixed); fileObj.Write(bufObj); fileObj.Close(); }No tienes esa capacidad en un navegador moderno. (a menos que alguien esté lo suficientemente loco como para permitir los controles ActiveX, lo que ya nadie hace).
¡el sistema de archivos local es 100% SIN MANOS!
Si permites esto?
Entonces, cuando vengas a mi sitio para ver una linda foto de un gato. Luego voy a hurgar y cargar, digamos, un archivo de texto llamado "mis contraseñas". ¿O qué tal si rebusco y busco un archivo llamado my banking?
o tomar todos sus correos electrónicos?
De hecho, su JavaScript ni siquiera puede SELECCIONAR o configurar un archivo cuando usa la carga de archivos. Por lo tanto, cualquier tipo de acceso a archivos locales no está permitido y está fuera de discusión.
Si esto se permitiera, ¡nadie volvería a usar ni confiar en Internet!
Es un agujero de seguridad demasiado grande. Ahora, ¿tal vez este podría ser un sitio web "solo" interno, y se debe permitir algún tipo de acceso y derechos de archivos locales? ¿Siendo ese el caso? Debe continuar permitiendo y configurando el navegador para permitir ActiveX para ese sitio interno, pero esta es una aventura de alto riesgo.
Por lo tanto, no tiene un reemplazo, ya que los navegadores están bloqueados desde el código incluso tocando, sabiendo o teniendo CUALQUIER conocimiento de las carpetas del lado del cliente. Además, el usuario puede estar en su teléfono Android o en un iPad, y de todos modos tienen sistemas de archivos bastante diferentes (y tampoco tienen soporte para ActiveX).
Por lo tanto, los navegadores modernos tienen CERO capacidad, repito CERO capacidad para ver, tocar, conocer la existencia de CUALQUIER archivo local; simplemente no está permitido. Casi la única forma de evitar este problema sería encontrar un navegador que aún sea compatible y permita ActiveX, y son muy pocos en estos días.