Вот способ сделать это без Javascript, и он также совместим с любым браузером, включая мобильный.
Кстати, в Safari input
отключается при скрытии с помощью display: none
. Лучшим подходом было бы использовать position: fixed; top: -100em
.
<label>
Open file dialog
<input type="file" style="position: fixed; top: -100em">
</label>
Если вы предпочитаете, вы можете пойти «правильным путем» , используя for
в label
, указывающем на id
ввода, например:
<label for="inputId">file dialog</label>
<input id="inputId" type="file" style="position: fixed; top: -100em">