Я загружаю файл (в JavaScript), расшифровываю его с помощью библиотеки, а затем создаю URL-адрес BLOB-объекта.Это происходит в результате взаимодействия с пользователем, когда пользователь нажимает на ссылку.Поэтому я не пытаюсь никого обмануть.Чтобы загрузить файл после его расшифровки, я использую следующий код:
var a = document.createElement('a');
a.href = 'blob:foo';
a.target = '_blank';
a.download = 'foo.jpg';
a.click();
Однако это не всегда успешно.
Когда это всегда успешно?
- Когда пользователь не использует блокировщик рекламы.
Когда это не успешно?
- Если пользователь использует блокировщик рекламы, который блокирует URL-адреса больших двоичных объектов (например, Adblock Plus через EasyList) и не поддерживает атрибут download .
SoЯ хочу показать пользователю предупреждение, если загрузка не удалась.Есть ли способ обнаружить это?
Моя текущая идея заключается в следующем:
- Определить, есть ли блокировщик рекламы
- Проверить, поддерживается ли атрибут загрузки (!window.externalHost && 'download' в createElement ('a'))
- Уведомление пользователя о потенциальных проблемах