Скачивание изображений в IE10+

Возникла необходимость реализовать скачивание изображений при клике по ссылке.

К счастью, в спецификации HTML5 появился новый атрибут download, указывающий браузеру на то, что ресурс по ссылке следует скачать. К несчастью, этот атрибут не поддерживается в Сафари и IE.

Для IE удалось найти относительно простое альтернативное решение, основанное на блобах:

document.querySelector('a[download]').addEventListener('click', (event) => {
  // следующий код сработает только в IE10+
  if (navigator && navigator.msSaveOrOpenBlob) {
    event.preventDefault();
    const href = event.target.href;
    const xhr = new XMLHttpRequest();

    xhr.open('GET', href, true);
    xhr.responseType = 'blob';

    xhr.onload = () => {
      const filename = href.replace(/^.*\//g, '');
      return navigator.msSaveOrOpenBlob(xhr.response, filename);
    };

    xhr.send();
  }
});