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 15.07.2015 04:58

Цитата:

Сообщение от рони
в Firefox не сработает click()

Это с какого года?

Ладно, не важно. Вы просто скопировали сырец с СО по моей ссылке, чтобы любовно оформить его в тегах "запустить". В этом же вы видите вашу великую миссию - подсовывать ламерам готовенькое за плюсики. Звучит гимн героев советского союза... :)

Разумеется в ФФ .click() работает и давно и получше чем в других браузерах.

рони 15.07.2015 06:52

Цитата:

Сообщение от kostyanet
Разумеется в ФФ .click() работает и давно и получше чем в других браузерах.

шедевр!!!вам хоть иногда ... , видимо нет :)

kostyanet 15.07.2015 14:50

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

рони 15.07.2015 16:17

kostyanet
хорошо пусть в вашей вселенной клик в ФФ работает
тогда этот код для вас
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);
        link.click()
}
download('test.txt', 'Hello world! Hello world!');

остальным я рекомендую не этот а рабочий код в 13 посте.
буду считать что вы kostyanet невнимательны, при чтении тем.

kostyanet 15.07.2015 21:48

Цитата:

Сообщение от рони
буду считать что вы kostyanet невнимательны, при чтении тем.

Это вы профессор. Что вы щелкать-то собираетесь? Абстрактный элемент которого еще нет дома? Само собой он не будет щелкаться, а браузеры которые дают такое щелкать - не нормальные. ФФ не дает? Значит в ФФ все сделано правильно.

Надо в дом засунуть и тогда хоть где хоть защелкайся. То есть смысл той вилки все равно нулевой. Нет никакой связи между наличием кастомных событий и возможной фичей браузера который дает щелкать по абстрактному элементу (ну типа элементу в теневом доме). Потому что вы подепили тот снипет лишь бы оформить.

Вот что надо вставить перед link.click():

link = document.body.appendChild(link);
link.click();


Ну, типа да, затем придется удалить или просто закешировать и затем навешивать другие урлы и имена файлов.

рони 15.07.2015 22:18

Цитата:

Сообщение от kostyanet
Вот что надо вставить перед link.click():

одно радует что вы разобрались, и дали разумное обьяснение, жаль что до этого вы счёлкали
Цитата:

Сообщение от kostyanet
Абстрактный элемент которого еще нет дома?

сейчас если хотите делайте круглые глаза, изображайте, патетику и охайте.
мир по прежнему вокруг вас одни дураки.
да, а где код с интерфейсом для
Цитата:

Сообщение от kostyanet
Ну, типа да, затем придется удалить или просто закешировать и затем навешивать другие урлы и имена файлов.

? (не надо кода, я вам так верю)

kostyanet 15.07.2015 23:06

Цитата:

Сообщение от рони
да, а где код с интерфейсом для

Делайте квадратные глаза http://javascript.ru/forum/dom-windo...tml#post379204

рони 15.07.2015 23:35

kostyanet,
только как догадатся что rows это массив с текстом? вижу недоработочка в интерфейсе, добавьте поле ввода с проверкой, чтоб не гонять пустой массив, а то вы как то не по программистки.

kostyanet 16.07.2015 06:22

Признаю вашу наглость и позволяю приделать к тому кусочку все что пожелаете.

Для тех кто тоже нипонял: текст надо засунуть в [], то есть вот так передать [text]

mmotor 30.07.2015 03:48

Цитата:

Сообщение от рони (Сообщение 379238)
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!');

В IE не работает


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