Подтвердить что ты не робот

Как заставить браузер отображать "сохранить как диалог", чтобы пользователь мог сохранить содержимое строки в файл в своей системе?

Как я могу заставить браузер отображать "сохранить как диалог", чтобы пользователь мог сохранить содержимое строки в файле в своей системе?

Например:

var myString = "my string with some stuff";
save_to_filesystem(myString,"myString.txt");

Результат:

Example

4b9b3361

Ответ 1

Если кому-то все еще интересно...

Я сделал это вот так:

<a href="data:application/xml;charset=utf-8,your code here" download="filename.html">Save</a>

Не могу вспомнить мой источник, но он использует следующие методы \features:

  • html5 атрибут загрузки
  • данные uri's

Найдено ссылку:

http://paxcel.net/blog/savedownload-file-using-html5-javascript-the-download-attribute-2/


EDIT: Как вы можете получить из комментариев, это делает НЕ работать в

  • Internet Explorer (работает в Edge v13)
  • Safari
  • Safari iOS
  • Opera Mini
  • Android-браузер (4.3 и ниже)

http://caniuse.com/#feat=download

Ответ 2

Для этого есть библиотека javascript, см. FileSaver.js в Github

Однако функция saveAs() не отправит чистую строку в браузер, вам необходимо преобразовать ее в blob:

function data2blob(data, isBase64) {
  var chars = "";

  if (isBase64)
    chars = atob(data);
  else
    chars = data;

  var bytes = new Array(chars.length);
  for (var i = 0; i < chars.length; i++) {
    bytes[i] = chars.charCodeAt(i);
  }

  var blob = new Blob([new Uint8Array(bytes)]);
  return blob;
}

а затем вызовите saveAs на blob, как будто:

var myString = "my string with some stuff";
saveAs( data2blob(myString), "myString.txt" );

Конечно, не забудьте включить вышеупомянутую библиотеку javascript на свою веб-страницу, используя <script src=FileSaver.js>

Ответ 3

Это возможно, используя эту реализацию javascript в кросс-браузере функции HTML5 saveAs: https://github.com/koffsyrup/FileSaver.js

Если все, что вы хотите сделать, это сохранить текст, то указанный выше script работает во всех браузерах (включая все версии IE), используя только JS.

Ответ 4

Использование execComand:

<input type="button" name="save" value="Save" onclick="javascript:document.execCommand('SaveAs','true','your_file.txt')">

В следующей ссылке: execCommand