Как мне создать и загрузить 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();