2016-03-16 7 views
0

Я просмотрел здесь бесчисленное количество раз за помощью в моих проектах, и теперь я наконец создал учетную запись. Я надеялся получить некоторые разъяснения по поводу ответа, который я нашел для аналогичного вопроса, который имел функциональность, подобную той, что я хотел. Я хочу, чтобы пользователь нажал кнопку и загрузил файл CSS с данными, которые были перенесены в пустой массив с помощью JavaScript.Загрузите динамически созданный файл CSS, сгенерированный Javascript

Вот код, я обнаружил, что работает в определенную степень (я функция срабатывает по щелчку в пределах моего фактического кода, но эта часть является Удельной у меня проблемы с.)

function download(filename, text) { 
    var pom = document.createElement('a'); 
    pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); 
    pom.setAttribute('download', filename); 

if (document.createEvent) { 
    var event = document.createEvent('MouseEvents'); 
    event.initEvent('click', true, true); 
    pom.dispatchEvent(event); 
} 
else { 
    pom.click(); 
} 
} 

download('responsive.css', 'Hello world!'); 

I «Я обнаружил, что это отлично работает в Chrome, однако, когда у меня был кто-то еще, проверив это в Firefox, он был загружен как responsive.css.txt. Я провел некоторое исследование, чтобы увидеть, можно ли изменить «данные: текст/обычное» на «data: text/css» в строке 3 моего кода, но мой тестер сказал, что у него все еще такая же проблема. Кроме того, если бы у кого-то было бы решение для этого функционировать в IE, это было бы здорово, потому что сейчас, когда вы нажимаете кнопку для загрузки, ничего не происходит.

Заранее благодарен!

+0

Вы должны добавить элемент в DOM. https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild – NatureShade

ответ

0

, если вы установите тип загрузки, он должен работать:

function download(filename, text) { 
    var pom = document.createElement('a'); 
    pom.setAttribute(
    'href', 
    'data:application/download;charset=utf-8,' + encodeURIComponent(text) 
); 
    pom.setAttribute('download', filename); 

    if (document.createEvent) { 
    var event = document.createEvent('MouseEvents'); 
    event.initEvent('click', true, true); 
    pom.dispatchEvent(event); 
    } 
    else { 
    pom.click(); 
    } 
} 

download('responsive.css', 'Hello world!'); 

См: https://jsfiddle.net/s5on5dau/1/

Успехов;)

Смежные вопросы