2015-06-24 4 views
0

Я пытаюсь загрузить HTML-файл с помощью тега a, следующего за моим кодом. Он работает в Chrome и Firefox, но он не работает в IEЗагрузить HTML-файл с помощью тега

var a = document.createElement("a"); 
a.href = "data:text/html,"+htmlContent; 
a.target  = '_blank'; 
a.download = "test.html"; 
document.body.appendChild(a); 
a.click(); 

Любые идеи, что может вызывать проблему

+3

«Не работает» на самом деле не является объяснением того, с какими проблемами вы столкнулись. Кроме того, в том числе версия IE будет очень полезна. Для всех, кого мы знаем, вы говорите об IE 6: P – Lix

+0

Пожалуйста, включите в свой пост именно то, с чем вы столкнулись - есть ли ошибки? Неожиданное поведение? – Lix

+1

Попробуйте использовать 'alert()' или 'console.log()', чтобы попытаться сузить то, что происходит не так. – Snappawapa

ответ

4

download атрибут <a> элемента не поддерживается на то. См http://www.w3schools.com/tags/att_a_download.asp

+0

Вот отличный ресурс с «современными таблицами поддержки браузера для поддержки интерфейсных веб-технологий на настольных и мобильных веб-браузерах» - http://caniuse.com/#search = скачать – Lix

0

переключатель вы HREF включить фактическое имя файла, а затем добавить

?forcedownload=1 

до конца этого. Это должно работать для IE.

1

Поскольку атрибут download является относительно недавним дополнением к HTML5, не стоит ожидать широкой поддержки браузеров.

В настоящее время единственный надежный способ обеспечить браузер инициирует загрузку при открытии URL должны иметь сервер отправить правильные заголовки говоря это сделать так:

Content-Disposition: attachment; filename=test.html

Как MDN docs покажет вы, атрибут полностью не поддерживается всеми версиями IE, то есть еще слишком рано полагаться на атрибут download. Я бы рекомендовал вмешательство сервера в настоящее время.