13.07.2015, 19:09
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Сообщение от Deff
|
Основная задача не сохранить на диск - явно
|
Там же написано - сохранить в файл. Где еще файлы могут быть?
Сообщение от mmotor
|
Теперь возник вопрос, как задать имя файлу.
|
Еще можно тупо в атрибуте download="filename.ext" если через мгновенно созданную ссылку.
|
|
13.07.2015, 19:16
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Вот кусок из юзер-скрипта сохраняющий массив в чесеве:
if(rows.length) {
var blob = new Blob(rows, {type:'text/csv'}),
link = document.createElement("a");
link.download = file_name+'.csv';
link.style.display='none';
link.href = window.URL.createObjectURL(blob);
link = document.body.appendChild(link);
link.click();
var timeoutID = setTimeout(function() {
link = document.body.removeChild(link);
delete link;
window.clearTimeout(timeoutID);
}, 1500);
}
Возможно ФФ-специфичный, попробуйте приделать к своим реалиям. Через блоб получается лучше чем через дата-урл напрямую.
ЗЫ Для фактуры http://stackoverflow.com/questions/1...-and-save-file
Последний раз редактировалось kostyanet, 13.07.2015 в 19:25.
|
|
13.07.2015, 22:12
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
сохранение текста в файл для Google Chrome и Mozilla Firefox
mmotor,
function download(filename, text) {
var blob = new Blob([text], {type:'text/csv'}),
link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.setAttribute('download', filename);
var event = document.createEvent('MouseEvents');
event.initEvent('click', true, true);
link.dispatchEvent(event);
}
download('test.txt', 'Hello world! Hello world!');
Последний раз редактировалось рони, 14.07.2015 в 23:57.
|
|
14.07.2015, 07:33
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
if (document.createEvent) то click() не сработает?
|
|
14.07.2015, 12:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
kostyanet,
нет не сработает, проверить как всегда кому-то лень -- можно убрать link.click(); только ветка document.createEvent
|
|
14.07.2015, 12:31
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Ну я и говорю, а если document.createEvent то click() не сработает?
|
|
14.07.2015, 15:31
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
kostyanet,
нет Firefox не будет реагировать на такой клик, Chrome безразлично сработает в обоих случаях, click() оставлен про запас не нравится можно убрать.
Последний раз редактировалось рони, 14.07.2015 в 15:34.
|
|
14.07.2015, 22:45
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Сообщение от рони
|
Chrome безразлично сработает в обоих случаях
|
То есть Хром попадет и в тот, и в другой зуб вилки?
Я одного не пойму - вы же видите что условие вычисляется в true
Цитата:
|
если document.createEvent то click() не сработает?
|
но второй раз уже отвечаете как будто в false.
Короче, прямым текстом - в каком браузере a.click() не сработает и понадобится сооружать кастомное событие и поджигать?
|
|
14.07.2015, 23:43
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
kostyanet,
в Firefox не сработает click()
|
|
14.07.2015, 23:57
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
kostyanet,
убрал лишнее смотрите 13 пост
|
|
|
|