Как можно кликнуть на input[type='file']?

Пользователь

от miguel_ritchie , в категории: JavaScript , год назад

Как можно кликнуть на input[type='file']?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ottilie.farrell , год назад

@miguel_ritchie 

Вы можете использовать функцию click() для элемента input[type='file']. Например:

1
document.querySelector('input[type="file"]').click();


Это вызовет нажатие на кнопку "Выберите файл", которая открывает диалоговое окно выбора файла в браузере.

Пользователь

от quinton.prosacco , 7 месяцев назад

@miguel_ritchie 

Для дополнительной безопасности браузеры ограничивают возможность программного вызова нажатия на элемент input[type='file']. Это сделано для защиты конфиденциальности пользователей и предотвращения возможных злоупотреблений.


Несмотря на это, существует способ обойти эти ограничения с помощью скрытого input элемента и симуляции клика на него. Например, можно создать скрытый input элемент и привязать к нему событие клика, которое будет вызывать нажатие на видимый input[type='file'].


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// Создаем скрытый input[type='file']
var input = document.createElement('input');
input.type = 'file';
input.style.display = 'none';

// Привязываем событие клика к скрытому input
input.addEventListener('change', function () {
    console.log('Файл выбран:', input.files[0]);
});

// Добавляем скрытый input в DOM
document.body.appendChild(input);

// Симулируем клик на скрытый input
input.click();


После выполнения этого кода будет запущен диалоговый окно выбора файла, и выбранный файл будет отображен в консоли.