如何检查浏览器是否支持 webkitdirectory?

Haf*_*ari 6 html javascript webkit google-chrome multifile-uploader

我在我的项目中使用 Google Chrome 的文件夹上传功能,如下所述: 如何在我自己的代码中使用 Google Chrome 11 的上传文件夹功能?

我有一个按钮,单击时会触发输入字段。我的问题是如何检查浏览器是否支持 webkitdirectory ?所以我可以隐藏我的按钮或提醒用户使用 chrome 来提供此服务。

<button>Upload Folder</button>
<input type="file" name="file[]" multiple webkitdirectory>

<script>
  $("button").click(function(e) {
    /* TODO: Detect webkitdirectory support */
    if(webkitdirectory)
      $('input').trigger('click');
    else
      alert('Use Chrome!');
  });
</script>
Run Code Online (Sandbox Code Playgroud)

Haf*_*ari 1

基于Modernizer这个答案,我可以使用这个函数来检测是否支持目录选择:

function testFileInputDirectory() {
    var elem = document.createElement('input'),
    dir = 'directory',
    domPrefixes = [ "", "moz", "o", "ms", "webkit" ],
    prefix;
    
    elem.type = 'file';
    
    for (prefix in domPrefixes) {
      if (domPrefixes[prefix] + dir in elem) {
        return true;
      }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)