Как мне создать и загрузить CSV-файл с использованием Javascript?

У меня есть этот код в кнопке:

var csvContent = "data:text/csv;charset=utf-8,";
csvContent += myCSVcontent;

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);

Это прекрасно работает в Chrome, Safari и Firefox.
- Но не IE8 - мне нужна совместимость с Internet Explorer 8.

Когда я нажимаю кнопку, которая вызывает код выше, он загружает файл.csv на мой компьютер.
Когда я нажимаю кнопку в IE8, она открывает новое окно IE8 со всем содержимым csv в адресной строке и ничего не загружает (или просит загрузить).

К сожалению, у меня должна быть совместимость с IE8. Как я могу сделать эту работу?

Изменить: я должен избегать любых дополнительных звонков на сервер. Все должно происходить на стороне клиента. В настоящее время это работает во всех браузерах, кроме IE8 (и, возможно, IE9).

Edit2: когда я меняю последнюю строку на "document.location.href= encodedUri;" он по-прежнему будет работать во всех других браузерах, но в IE8, когда я нажимаю кнопку, я получаю окно с сообщением об ошибке "Область данных, переданная системному вызову, слишком мала". Любая идея, что это говорит мне?

1 ответ

"Данные: текст / CSV;" это HTML5, поэтому он не будет работать для IE8, я могу решить эту проблему с помощью ActivexObject, но он записывает файл на рабочий стол пользователя и без всплывающих окон

var csv = new ActiveXObject("scripting.FileSystemObject");
var fLoc = csv.CreateTextFile(fileName);
fLoc.WriteLine(csvData);
fLoc.close();
Другие вопросы по тегам