Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как на клиентском JavaScript создать некий текст и сохранить (https://javascript.ru/forum/dom-window/56942-kak-na-klientskom-javascript-sozdat-nekijj-tekst-i-sokhranit.html)

kostyanet 13.07.2015 19:09

Цитата:

Сообщение от Deff
Основная задача не сохранить на диск - явно

Там же написано - сохранить в файл. Где еще файлы могут быть?

Цитата:

Сообщение от mmotor
Теперь возник вопрос, как задать имя файлу.

Еще можно тупо в атрибуте download="filename.ext" если через мгновенно созданную ссылку.

kostyanet 13.07.2015 19:16

Вот кусок из юзер-скрипта сохраняющий массив в чесеве:

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

рони 13.07.2015 22:12

сохранение текста в файл для 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!');

kostyanet 14.07.2015 07:33

if (document.createEvent) то click() не сработает?

рони 14.07.2015 12:16

kostyanet,
нет не сработает, проверить как всегда кому-то лень -- можно убрать link.click(); только ветка document.createEvent

kostyanet 14.07.2015 12:31

Ну я и говорю, а если document.createEvent то click() не сработает?

рони 14.07.2015 15:31

kostyanet,
нет Firefox не будет реагировать на такой клик, Chrome безразлично сработает в обоих случаях, click() оставлен про запас не нравится можно убрать.

kostyanet 14.07.2015 22:45

Цитата:

Сообщение от рони
Chrome безразлично сработает в обоих случаях

То есть Хром попадет и в тот, и в другой зуб вилки?

Я одного не пойму - вы же видите что условие вычисляется в true

Цитата:

если document.createEvent то click() не сработает?
но второй раз уже отвечаете как будто в false.

Короче, прямым текстом - в каком браузере a.click() не сработает и понадобится сооружать кастомное событие и поджигать?

рони 14.07.2015 23:43

kostyanet,
в Firefox не сработает click()

рони 14.07.2015 23:57

kostyanet,
убрал лишнее смотрите 13 пост


Часовой пояс GMT +3, время: 05:13.