Если вы скопируете https://raw.githubusercontent.com/phazelift/types.js/master/types.min.js в консоль IE 11 и запустите ее, вы увидите код вы получаете от node_modules/types.js
не совместим с IE 11.
Поскольку в большинстве конфигураций стека сборки модули из папки node_modules
не подлежат переносу с помощью Babel, проще всего было бы скопировать их код в папки вашего проекта, где находится ваш собственный код JS. Импортируя его оттуда, вы убедитесь, что ваш Babel переносит код.
Править
Да JavaScript, что-то как:
<a href="download.php" onclick="this.innerHTML='Downloading..'; downloadPdf(this);">Download</a>
Если необходимо на самом деле понять, когда загрузка запускается, вероятно, необходимо назвать iframe и затем использовать "onload" событие на нем.. например:
// javascript
function downloadPdf(el) {
var iframe = document.createElement("iframe");
iframe.src = "download.php";
iframe.onload = function() {
// iframe has finished loading, download has started
el.innerHTML = "Download";
}
iframe.style.display = "none";
document.body.appendChild(iframe);
}
Решение, которое Вы имеете для загрузки, прекрасно. Можно хотеть полагать, что некоторая визуальная обратная связь пользователю, возможно, при помощи JavaScript показывает "Загрузку, ожидайте сообщение" на текущей странице, когда на ссылку нажимают через onclick обработчик. Или просто укажите, что загрузка может занять время для запуска рядом со ссылкой. Так как IE разгрузит страницу, останавливая любые анимации GIF, я предпочитаю текстовые признаки для загрузок файла.
фальсифицируйте его при помощи onclick обработчика событий для показа вращения gif
<a href="download.php" onclick="ShowDownloading();">Download</a>
Автоматически стартовые загрузки обычно используют метатег в нормальной странице:
<META HTTP-EQUIV="REFRESH" CONTENT="10.0;URL=download.php">
Этот пример перенаправит браузер через 10 секунд к download.php.