Материалы. Как отловить событие отмены окна выбора файла в JavaScript
6 лет назадМетки: javascript, программирование, js событие в выбаре файлов нажато отмена, close select file dialog event jsПотребовалось на работе отловить закрытие окна выбора файла у <input type="file" id="input">
Погуглив большие и страшные решения, нашёл одно простое, но не работающее, точнее работающее но с опозданием в 1 цикл открытия окна.
После чего переписал его вот в такой.
var input = document.getElementById('input')
input.addEventListener('click',enter)
function enter()
{
document.body.addEventListener('focusin',leave)
}
function leave()
{
setTimeout(function(){
if(input.value.length) alert('Есть файлы')
else alert('Файлов нет')
document.body.removeEventListener('focusin',leave)
},100)
}
Суть метода, в момент нажатия на выбор файла, подписываемся на событие возвращения к странице. После возвращения с задержкой в 100ms (можно и меньше, но не 0), проверяем что в поле выбора. Если там ничего нет, значит выбор был отменён.
Ссылка для тестирования: http://jsfiddle.net/kb52n3cs/6/