В настоящее время нет надежного способа сделать это, о чем свидетельствуют тесты Вильями Салминена о поддержке загрузки файлов в мобильных браузерах (т. Е. Поддержка input type=file
- не говоря уже о несколько загрузка файла).Его результаты показывают, что многие браузеры / устройства ложно сообщают о поддержке .
Что я подразумеваю под «нет надежного способа сделать это в настоящее время» в том, что мы неу этого списка есть ложное срабатывание, свойство HTMLInputElement.multiple
.Очевидно, что список будет включать в себя все регулярное выражение ложных срабатываний для input type=file
, но вероятно также будет включать дополнительные ложные срабатывания только для этой конкретной функции - следовательно, возможность обнаружения этой возможности ждетсистематический тест браузеров.
Временно вы можете использовать следующий тест, полностью основанный на коде Салминена, с добавлением одной строки (el.multiple = true;
) и заменой xxx
на регулярное выражение, упомянутое выше.
var isMultipleFileInputSupported = (function () {
// Handle devices which falsely report support
if (navigator.userAgent.match(/xxx/)) {
return false;
}
var el = document.createElement('input');
el.type = 'file';
el.multiple = true;
return !el.disabled;
})();
Пример использования:
if (isMultipleFileInputSupported) {
console.log('multiple file input is supported');
} else {
console.log('multiple file input is NOT supported');
}