У меня есть строка, содержащая данные электронной таблицы Excel XML, которые я хочу, чтобы пользователи могли загружать в виде файла .xls. В настоящее время я использую приведенный ниже код, который отлично работает в Chrome. Однако, поскольку большинство наших пользователей все еще используют IE8, нам придется запускать страницу через Chrome Frame, и здесь загрузка, похоже, не работает (ничего не происходит).
У нас также есть предупреждение о выгрузке/выходе страницы, напоминающее пользователям о сохранении перед закрытием, поэтому загрузки, вызывающие это событие (например, – Это больше не применяется, хотя location.href все равно не работает.location.href = blob
), не будут работать.
var blob = new Blob([template]),
saveLink = document.createElement("a");
saveLink.href = window.URL.createObjectURL(blob);
saveLink.download = "EventDetails.xls";
saveLink.click();
ИЗМЕНИТЬ:
Я также безуспешно пробовал следующее:
window.open("data:application/vnd.ms-excel," + template, "_self");
И,
var blob = new Blob([template], { type: "application/vnd.ms-excel" });
window.open(window.URL.createObjectURL(blob), "_self");
Я предполагаю, что проблема в том, что Chrome Frame использует загрузчик IE8 и поэтому открывает новый сеанс, который не может получить данные?