Tengo una función que descarga con éxito un blob como texto; sin embargo, su etiqueta (o ID, no es exactamente seguro) aparece como "blob:file:///*". ¿Hay alguna manera de cambiar el nombre de esto? 
Aquí está mi guión:
function download_as_txt(options) { let file = new Blob([options.data.toString()], { type: options.type }), url = URL.createObjectURL(file), a = document.createElement("a") ; a.href = URL.createObjectURL(file); a.download = options.name; document.body.appendChild(a); a.click(); document.body.removeChild(a); window.URL.revokeObjectURL(url); }; download_as_txt({ name: `${pages[active_page]["label"]} Export - ${current_epoch}.txt`, data: config, type: "text", }); Esto es lo que he investigado:
• Blob nuevo : las propiedades de opción aparecen para permitir 'tipo' y 'terminaciones'
• nuevo archivo : let archivo = nuevo archivo ([opciones.datos.toString()], 'prueba.txt', { tipo: opciones.tipo }), // igual que blob, y 'prueba.txt' no aparecer en cualquier lugar
• solución de problemas: console.log(a) // parece que el nombre está vinculado al atributo 'href', por lo que parece que mi método actual de "url temporal" puede no funcionar
Mientras tanto, buscaré usar algo como fs, pero aún me gustaría abrir una ventana del explorador para que mis usuarios puedan elegir su directorio de descarga sin necesidad de completar un formulario. ...quizás pídales que seleccionen un directorio, lo descarguen y les avise cuando terminen.
Editar:
Hice una solución para Electron:
• diálogo.showOpenDialog
• fs.escribir archivo
• alertar.alerta
El código no parece tan limpio como descargar un nuevo blob, pero al menos no estoy manipulando el DOM (más allá de alertar, de todos modos)