9

Internet Explorer 不multiple支持<input type="file" />. 但是,不仅 IE 不支持该属性……某些移动浏览器也不支持该multiple属性。所以简单地检测浏览器是IE并不是理想的解决方案。

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

更新

似乎 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;
};
4

2 回答 2

15

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

var supportsMultipleFiles = 'multiple' in document.createElement('input');

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

于 2012-05-05T00:46:05.033 回答
8
var inp = document.createElement("input");
inp.setAttribute("multiple", "true");
var supportsMultiple = inp.multiple===true;
于 2012-05-05T00:47:52.077 回答