如何检测文件输入元素是否支持"multiple"属性?

Hri*_*sto 8 javascript html5 file-upload modernizr

Internet Explorer不支持该multiple属性<input type="file" />.然而,它不仅缺乏这种支持的IE ......某些移动浏览器也不支持该multiple属性.因此,简单地检测浏览器是IE不是理想的解决方案.

那么我如何检测JavaScript multiple是否支持该属性<input type="file" />

UPDATE

似乎Modernizr支持新的HTML5输入元素属性:

http://modernizr.com/docs/#input

然而,接受的解决方案似乎有效,因为我已经在使用Modernizr,我的解决方案如下:

/**
 * Determines if the given attribute is supported for <input /> elements.
 * 
 * @param attribute - the attribute to test for (ex. "multiple")
 */
function isInputAttributeSupported(attribute) {
    return (Modernizr.input[attribute]) ? true : false;
};
Run Code Online (Sandbox Code Playgroud)

Jon*_*ski 13

您可以尝试检查相应属性的存在:

var supportsMultipleFiles = 'multiple' in document.createElement('input');
Run Code Online (Sandbox Code Playgroud)

示例:http://jsfiddle.net/sbZvS/


epa*_*llo 8

var inp = document.createElement("input");
inp.setAttribute("multiple", "true");
var supportsMultiple = inp.multiple===true;
Run Code Online (Sandbox Code Playgroud)