2011-11-18 11 views
8

Estoy tratando de crear un archivo de texto usando JavaScript, sé que es posible mediante el uso de objetos ActiveX, pero funciona bien solo en los navegadores IE.Crear archivo de texto en JavaScript

Mi requisito es generar un archivo de texto usando JavaScript para los navegadores Safari?

¿Alguien me puede ayudar en este sentido?

+0

Dude nos proporciona su código para que podamos ayudar ... –

+0

vea también [Cómo crear, guardar un archivo txt con navegador compatible con JavaScript] (http://stackoverflow.com/questions/7392117/ how-to-create-save-a-txt-file-with-javascript-compatible-cross-browser) – harpo

Respuesta

-2

pero mi obligación es generar un archivo de texto usando javascript para un navegador Safari

eso no es posible con vainilla Javascript debido a las restricciones de seguridad . Sin embargo, puede utilizar en el lado del servidor javascript como Node.JS o Ajax o alguna otra tecnología de del lado del servidor.

8

En JavaScript u puede utilizar la línea siguiente para preguntar el usuario para guardar un archivo de texto,

window.open("data:text/json;charset=utf-8," + escape("Ur String Object goes here"));

He probado esto en algunos navegadores populares algunas veces hacia atrás ... sólo asegúrese de que funciona en Safari o no .. buena suerte

+0

Han pasado 3 años desde que se publicó esta respuesta, pero este código no funcionaba correctamente en Google Chrome. – hexicle

12

Otra manera de hacerlo sería utilizar un Blob y URL.createObjectURL. Todos los navegadores recientes, incluido Safari 6+, los admiten.

var textFile = null, 
    makeTextFile = function (text) { 
    var data = new Blob([text], {type: 'text/plain'}); 

    // If we are replacing a previously generated file we need to 
    // manually revoke the object URL to avoid memory leaks. 
    if (textFile !== null) { 
     window.URL.revokeObjectURL(textFile); 
    } 

    textFile = window.URL.createObjectURL(data); 

    // returns a URL you can use as a href 
    return textFile; 
    }; 

He aquí un example que utiliza esta técnica para guardar mensajes de texto arbitraria de un textarea.

Otra cosa a tener en cuenta sobre el ejemplo es que utilicé el download attribute en el enlace de descarga. Desafortunadamente, Safari no lo admite actualmente. Sin embargo, en los navegadores que sí lo hacen, el archivo se descargará automáticamente cuando se haga clic en lugar de abrir el archivo en el navegador. Además, desde que establecí el atributo download en info.txt, el archivo se descargará con ese nombre en lugar del nombre aleatorio generado por createObjectURL.

Cuestiones relacionadas