Как лучше всего проверить, может ли пользователь загружать файлы?

Мне интересно, как лучше всего проверить, доступно ли поле ввода type="field" пользователю?

По крайней мере, iPhone и iPad не позволяют пользователю загружать файлы, но вместо того, чтобы проверять пользовательский агент с помощью внутреннего кода, я хотел бы услышать, что вы считаете самым минималистичным решением?

Цель состоит в том, чтобы проверить, доступны ли загрузки файлов, если нет, установить display: none; для всего div, содержащего форму.

Можно ли это сделать только с помощью CSS? JQuery?

Я бы предпочел решение, которое явно не проверяет (iOS), а скорее делает более общую проверку.

Заранее спасибо!

1 ответ

Решение

Наиболее элегантный способ справиться с этим на сегодняшний день, вероятно, - использовать Modernizr, который в своей последней версии позволяет проверить поддержку ввода файлов с помощью следующего оператора JS:

if(Modernizr.fileinput) {
    //file input available!
} else {
    //No file input :(
}

В качестве альтернативы, если вы не хотите включать Modernizr в свой проект, есть простой способ проверить его, который включает в себя только 3 строки кода:

var elem = document.createElement('input');
elem.type = 'file';
return !elem.disabled;

Как описано в этом SO ответе.

Другие вопросы по тегам