Другой способ сделать это - использовать Blob
и URL.createObjectURL
.Все последние браузеры, включая Safari 6+, поддерживают их.
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;
};
Вот пример , который использует эту технику для сохранения произвольного текста из textarea
.
Другая вещьОтметим, что в примере я использовал атрибут download
в ссылке для скачивания.К сожалению, Safari в настоящее время не поддерживает его.Однако в браузерах, которые это делают, файл будет автоматически загружаться при нажатии вместо открытия файла в браузере.Кроме того, поскольку я установил для атрибута download
значение info.txt
, файл будет загружен с этим именем вместо случайного имени, созданного createObjectURL
.