Как сгенерировать и предложить сохранить файл из контента в браузере клиента? [Дубликат]

На этот вопрос уже есть ответ здесь:

JavaScript: создать и сохранить файл 11 ответов

У меня есть ситуация, когда я должен дать своим пользователям возможность сохранять некоторые данные, хранящиеся локально в их клиентской памяти, на диск. Текущий обходной путь у меня есть такой обработчик

(define-handler (download-deck) ((deck :json))
  (setf (header-out :content-type) "application/json"
    (header-out :content-disposition) "attachment")
  deck)

который делает именно так, как это выглядит. Клиент отправляет свои данные и сохраняет возвращенный файл локально.

Это кажется глупым.

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

Каждый ответ, который я читаю на эту тему, говорит «нет, вы не можете сохранять файлы с помощью javascript» или «да, есть один полу-документированный фрагмент Chrome API, который может позволить вам сделать это на трех страницах».

Ответы на вопрос(3)

Ваш ответ на вопрос