Generando y guardando / descargando archivos solo con javascript

Hice un editor de mapas para mi juego, el código se genera a un div con “código” de identificación. Me pregunto cómo generar un archivo javascript con este código. Obviamente tengo que obtener el texto del código div. var code = $("#code").text(); trabajará. Pero ahora quiero generar y descargar un archivo javascript con este código. ¿Es posible generar / descargar un archivo solo con javascript o tengo que usar php?

Quiero elegir la carpeta y el nombre de forma manual.

Solutions Collecting From Web of "Generando y guardando / descargando archivos solo con javascript"

La respuesta corta a tu pregunta es no. Por razones de seguridad, los navegadores tienen mucho cuidado de NO permitir que Javascript haga prácticamente nada con el sistema de archivos.

Sin embargo, Flash no tiene tales limitaciones; echa un vistazo: https://github.com/dcneiner/Downloadify . Por supuesto, Flash tiene sus propios problemas, como el hecho de que los navegadores móviles tienden a no admitirlo (pero dado que su caso de uso es la descarga de un archivo, y los usuarios móviles probablemente no lo hagan, esto podría no ser un problema para tú).

Además de Downloadify (o una solución similar basada en Flash), sus únicas opciones son los applets de Java (no desea ir por ese camino), los complementos del navegador o algún tipo de participación del servidor (por ejemplo, como @Brad Christie descrito).

JavaScript no tiene la capacidad de solicitar un archivo guardado. Su mejor opción sería volcarla en una nueva ventana y mostrarla al usuario donde podrían guardarla si eligieran (archivo-> Guardar). De lo contrario, debe encontrar la manera de pasar la información necesaria a una llamada PHP y luego PHP puede proporcionarla con Content-Disposition: attachment y se le puede pedir al cliente que descargue el archivo.

Además, como me acaba de ganar, me puede ganar un plugin como flash para mantenerlo en el lado del cliente, pero todavía no es JavaScript. Pero Downloadify tiene esa funcionalidad.

Puede hacerlo, aunque tiene poco control sobre sugerir el nombre de archivo y la extensión de archivo.

No usaría esto para un sitio web de producción, pero parece funcionar.

 function promptSave(data) { /*@cc_on @*/ /*@if (@_jscript_version >= 4) //ie code here var iframe = document.createElement("iframe"); document.body.appendChild(iframe); var doc = iframe.contentWindow.document; doc.write(data); doc.execCommand('SaveAs', '', 'somefilename.txt');//only certain file extensions allowed document.body.removeChild(iframe); @else @*/ // non ie code window.location = 'data:application/octet-stream;base64,' + window.btoa(data); /*@end @*/ } var data = 'var jsFoo = {k:55};'; promptSave(data); 

manifestación

.part embargo, .part insiste en guardarlo como un archivo .part .