2011-06-24 12 views
5

¿Existe una biblioteca JavaScript que permita guardar cadenas como archivos txt y que funcione en todos los navegadores?Guardar en varios navegadores como .txt

En el pasado, he estado usando Downloadify, pero yo estoy mirando otra opción para un par de razones:

  • espero encontrar una solución JavaScript puro, sin necesidad de flash
  • se parece que Downloadify no se actualiza más (sin actualización en los últimos 18 meses)
  • estoy experimentando un problema con Downloadify en IE 9, donde las cuerdas se cortan
+1

La respuesta corta: no. Respuesta más larga: complementos, javascript firmado. Navegador cruzado: no sin flash – mplungjan

Respuesta

6

Por lo que yo sé, la única manera es utilizar datos: URL para forzar una descarga:

var data = "This is a test"; 
window.location.href = "data:application/x-download;charset=utf-8," + encodeURIComponent(data); 

Dos capturas aquí:

  • No funcionará en MSIE debido a su apoyo de los datos : Las URL son muy limitadas (supuestamente for security reasons). Por lo tanto, todavía necesitará Downloadify allí.
  • No puede especificar un nombre de archivo, el nombre de archivo sugerido dependerá del navegador utilizado. Y el tipo de archivo será "desconocido" (no puede usar un tipo MIME conocido porque el navegador no ofrecerá descargar el archivo).

Lectura adicional: hubo un debate sobre W3.org en febrero de 2010 para solucionar el segundo problema: http://lists.w3.org/Archives/Public/uri/2010Feb/thread.html#msg58. Sin embargo, esto no parece haber llegado a ninguna especificación hasta el momento, y menos aún implementaciones de navegador.

8

Here is lo que necesita. Pero aún no es un navegador cruzado. Funciona en Google Chrome.

<a download="MyFile.txt" 
    href="your-data-uri-here" 
    draggable="true" 
    class="dragout" 
>Download ready</a> 

también Wikipedia tiene una buena article about Data URI

Cuestiones relacionadas