Задать вопрос
@qunah

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

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

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

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

Похожие вопросы