Дополнительно
Скачать JSON-объект, как файл из браузера
У меня есть следующий код, чтобы разрешить пользователям загружать строк данных в файл CSV.
exportData = 'data:text/csv;charset=utf-8,';
exportData += 'some csv strings';
encodedUri = encodeURI(exportData);
newWindow = window.open(encodedUri);
Он работает так хорошо, что если клиент работает код, который он генерирует пустую страницу и начинается загрузка данных в CSV файл.
Так что я пытался сделать это с JSON-объект, как
exportData = 'data:text/json;charset=utf-8,';
exportData += escape(JSON.stringify(jsonObject));
encodedUri = encodeURI(exportData);
newWindow = window.open(encodedUri);
Но я вижу только страницу с JSON-данные, отображенные на ней, не скачивая его.
Я прошла некоторые исследования, и этого никто требования к работе, но я не'т вижу никакой разницы в моем коде.
Я что-то пропустил в моем коде?
Спасибо, что прочитали мой вопрос:)
123
10
Вот как я решил его для моего приложения:
HTML-код: в
<идентификатор="и downloadAnchorElem" в стиле=на"дисплей:нет" и></а>
Яш (чистом JavaScript, а не jQuery и здесь):
В данном случае,
storageObj
- это объект JS, которые вы хотите сохранить, и "сцены.в JSON" это просто пример имя для результирующего файла.Этот подход имеет следующие преимущества по сравнению с другими предложенных:
Мне нужно такое поведение без явного щелчка, так как я хочу, чтобы вызвать автоматическую загрузку в какой-то момент из JS.
Решение на JS (HTML не требуется):
Нашел ответа.
кажется, работает хорошо для меня.
Все заслуга @ковбой-Бен-алман, кто является автором код, указанный выше
Это будет чисто версию JS (адаптировано из ковбой'ы):
[http://jsfiddle.net/sz76c083/1][1]
Вы можете попробовать использовать:
Метод saveas()
Нет необходимости иметь дело с любым HTML-элементам на всех.
Если вы хотели довольно распечатать в формате JSON, в этот ответ, Вы могли бы использовать:
Следующие работал для меня:
и тогда, чтобы вызвать его так
Недавно мне пришлось создать кнопку, что бы скачать файл JSON всех значений большой формы. Мне это нужно для работы с IE/края/хром. Вот что я сделал:
Была одна проблема с именем и расширения в Edge, но на момент написания этой, казалось бы, ошибка с краю, которая должна быть исправлена.
Надеюсь, что это помогает кто-то
Простые, чистые решение для тех, кто только целевой современных браузеров:
Скачать
собственность ссылок новая и не поддерживается в Internet Explorer (см. таблицу совместимости здесь). Для кросс-браузер решение этой проблемы я хотел бы взглянуть на FileSaver.jsРеагировать: добавьте это, где вы хотите в вашем методе render.
• Объект в состоянии:
• Объекта реквизиты:
className и стиль являются необязательными, изменить стиль в соответствии с вашими потребностями.
Попробуйте установить другой MIME-тип:
exportData = 'данных:приложения/октет-поток;кодировка=кодировка UTF-8,';
Но там могут быть проблемы с именем файла в диалоге сохранения.