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

时间:2014-08-31 01:30:29

标签: javascript html5 google-chrome webkit multifile-uploader

我在我的项目中使用Google Chrome的文件夹上传功能,如下所述: How do I use Google Chrome 11's Upload Folder feature in my own code?

我有一个按钮,可以在单击时触发输入字段。我的问题是如何检查浏览器是否支持webkit目录?所以我可以隐藏我的按钮或提醒用户使用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>

2 个答案:

答案 0 :(得分:0)

基于Modernizerthis answer,我可以使用此功能来检测是否支持目录选择:

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;
}

答案 1 :(得分:-1)

要查看是否支持 webkit目录,请检查输入元素中的属性:

webkitdirectorySupported(){
  return 'webkitdirectory' in document.createElement('input')
}