Почему я получаю эту ошибку в IE: "Область данных, переданная системному вызову, слишком мала"?
Я создаю CSV-файл для загрузки с использованием Javascript, и он прекрасно работает во всем, кроме IE (я тестировал 8 и 10).
В IE8, когда я нажимаю кнопку, чтобы создать и загрузить файл, я получаю сообщение об ошибке, которое говорит: "The data area passed to a system call is too small"
, В IE10, когда я нажимаю кнопку, он просто открывает новую вкладку с URL-адресом, который я создал в адресной строке, но ничего не загружает.
Есть идеи, что означает эта ошибка?
У меня есть этот код в кнопке:
var csvContent = "data:text/csv;charset=utf-8,";
csvContent += escape(myCSVvariable);
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
Это связано с этим вопросом, но я начал новый, потому что я получил другую ошибку после изменения некоторых вещей - Как мне создать и загрузить CSV-файл, используя Javascript?
2 ответа
Это известная проблема, но есть обходной путь.
Добавьте следующий код
if (navigator.msSaveBlob)
{ // IE 10+
navigator.msSaveBlob(new Blob([csv], { type: 'text/csv;charset=utf-8;' }), "filename.csv");
}
и проблема должна быть решена. Это работает для IE10, я не тестировал его на IE8 (у меня больше нет IE8!)
Ссылаться на:
https://msdn.microsoft.com/library/Hh772331