Создать текстовый файл в JavaScript - PullRequest
8 голосов
/ 18 ноября 2011

Я пытаюсь создать текстовый файл с использованием JavaScript, я знаю, что это возможно с помощью объекта ActiveX, но он хорошо работает только в браузерах IE.

Мое требование - создать текстовый файл с использованием JavaScript для браузеров Safari?

Может ли кто-нибудь помочь мне в этом отношении?

Ответы [ 3 ]

12 голосов
/ 28 декабря 2013

Другой способ сделать это - использовать 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.

8 голосов
/ 18 ноября 2011

В JavaScript вы можете использовать следующую строку, чтобы попросить пользователя сохранить текстовый файл,

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

Я проверял это в некоторых популярных браузерах несколько раз назад ... просто убедитесь, что он работает в Safari или нет .. Удачи

0 голосов
/ 18 ноября 2011

но мое требование - создать текстовый файл, используя javascript для браузер Safari

Это невозможно с ванильным Javascript из-за ограничений безопасности . Однако вы можете использовать javascript на стороне сервера , такой как Node.JS или Ajax или некоторые другие серверные технологии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...