Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.07.2015, 19:09
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

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

Сообщение от mmotor
Теперь возник вопрос, как задать имя файлу.
Еще можно тупо в атрибуте download="filename.ext" если через мгновенно созданную ссылку.
Ответить с цитированием
  #12 (permalink)  
Старый 13.07.2015, 19:16
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 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 (permalink)  
Старый 13.07.2015, 22:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

сохранение текста в файл для 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 (permalink)  
Старый 14.07.2015, 07:33
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

if (document.createEvent) то click() не сработает?
Ответить с цитированием
  #15 (permalink)  
Старый 14.07.2015, 12:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

kostyanet,
нет не сработает, проверить как всегда кому-то лень -- можно убрать link.click(); только ветка document.createEvent
Ответить с цитированием
  #16 (permalink)  
Старый 14.07.2015, 12:31
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ну я и говорю, а если document.createEvent то click() не сработает?
Ответить с цитированием
  #17 (permalink)  
Старый 14.07.2015, 15:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

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

Последний раз редактировалось рони, 14.07.2015 в 15:34.
Ответить с цитированием
  #18 (permalink)  
Старый 14.07.2015, 22:45
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от рони
Chrome безразлично сработает в обоих случаях
То есть Хром попадет и в тот, и в другой зуб вилки?

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

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

Короче, прямым текстом - в каком браузере a.click() не сработает и понадобится сооружать кастомное событие и поджигать?
Ответить с цитированием
  #19 (permalink)  
Старый 14.07.2015, 23:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

kostyanet,
в Firefox не сработает click()
Ответить с цитированием
  #20 (permalink)  
Старый 14.07.2015, 23:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить данные в файл? Возможно такое на JavaScript? Forgott Общие вопросы Javascript 35 26.06.2015 19:11
Как нарисовать график на javascript? Бобр Общие вопросы Javascript 21 30.03.2014 17:27
нужно заставить одновременно работать слайдер и модальное окно обратной связи kvant355 Javascript под браузер 3 22.07.2013 16:34
Как на JavaScript подгрузить JavaScript? Pug-dog&Elephant Opera, Safari и др. 2 18.09.2011 15:43
Как сохранить кеш в JavaScript Jumong Общие вопросы Javascript 4 20.07.2008 20:29