У меня есть кнопка в моем веб-приложении, которая имеет следующий код в обработчике событий click:
const fileInputEl = document.createElement('input');
fileInputEl.type = 'file';
fileInputEl.accept = 'image/*';
fileInputEl.addEventListener('input', (e) => {
if (!e.target.files.length) {
return;
}
// Handle files here...
});
fileInputEl.dispatchEvent(new MouseEvent('click'));
Иногда (около 1 из 8) после выбора файла событие input
не срабатывает после выбора файла. Я предполагаю, что это ошибка браузера вокруг жизненного цикла элемента.
Каким-то образом это не добавляет элемент на страницу и удаляет его позже? Какой правильный способ справиться с этим в современных браузерах в наши дни?
Я тестирую Google Chrome в Windows.
JSFiddle: http://jsfiddle.net/pja1d5om/2/