@qunah

Элемент был заблокирован, как открыть файл программно из js?

Здравствуйте.
В браузере был код, который гарантировано работал в FF до 56 включительно. Он открывал диалоговое окно "Выгрузка файла" и был построен на на временном элементе input[type=file] и FileReader.
Внезапно оказалось, что в последних браузерах это уже не работает. В консоли пишут:
"Элемент <input> был заблокирован, так как пользователь не совершал никаких действий для его активации".

Более того, такое сообщение выдается, если в той же консоли сделать$('input[type=file]').click().
Непосредственное нажатие на элементе input диалоговое окно вызывает, а программное - нет.
Как это победить или обойти?
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 2
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Из соображений безопасности нельзя насильственно вставлять файлы в инпуты и тригерить на них клик.
Пока из известных мне - showOpenFilePicker() - позволяет вызвать диалоговое окно выбора файлов, но поддержка не полная.
Ответ написан
Комментировать
@zkrvndm
Софт для автоматизации
Используйте дропзону, пусть юзер кидает файл туда перетаскиванием.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы