9

multipleInternet Explorerは、の属性をサポートしていません<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 に答える