Кросс-браузер Сохранить как .txt - PullRequest
5 голосов
/ 24 июня 2011

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

В прошлом я использовал Downloadify, но я ищу другой вариант по нескольким причинам:

  • Я надеюсь найти чистое решение JavaScript без использования Flash
  • похоже, что Downloadify больше не обновляется (без обновлений за последние 18 месяцев)
  • У меня возникла проблема с Downloadify в IE 9, где обрезались строки

Ответы [ 2 ]

8 голосов
/ 27 февраля 2012

Вот что вам нужно. Но это еще не кросс-браузер. Работает в Google Chrome.

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

Также в Википедии есть хорошая статья о Data URI

6 голосов
/ 24 июня 2011

Насколько я знаю, единственный способ - использовать данные: URL-адреса для принудительной загрузки:

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

Две зацепки здесь:

  • Это не будет работатьв MSIE, потому что его поддержка data: URL очень ограничена (предположительно по соображениям безопасности ).Таким образом, вам все равно потребуется Downloadify.
  • Вы не можете указать имя файла, предлагаемое имя файла будет зависеть от используемого браузера.И тип файла будет «неизвестен» (вы не можете использовать известный тип MIME, потому что браузер не будет предлагать загрузить файл).

Дополнительное чтение: в W3.org было обсуждениеФевраль 2010 г. об исправлении второй проблемы: http://lists.w3.org/Archives/Public/uri/2010Feb/thread.html#msg58. Однако, похоже, до сих пор это не вошло в какую-либо спецификацию, не говоря уже о реализации браузера.

...