微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浏览器扩展 - 下载多个 JSZip 解压文件

如何解决浏览器扩展 - 下载多个 JSZip 解压文件

我在我的 vue 浏览器扩展中使用 JSZip。我创建了一个函数来读取 zip 文件,并且能够获取 zip 的内容。我想让用户能够在选择它们后下载多个文件,但我无法实现这一点。这是代码

在模板代码中,我使用 v-for 生成打开的 zip 文件中的文件列表

        <ul class="list-group list-group-flush pt-5 overflow-auto">
          <li class="list-group-item" v-for="(file,i) in filesList" :key="i">
            <small class="float-start">{{ file }}</small>
            <input class="form-check-input float-end" type="checkBox" ref="selectedFile">
          </li>
        </ul>

方法部分的 <script> 标签内,我有这两种方法

  methods: {
    handleFiles(e) {
      e.dataTransfer.files.forEach( (file) => {
        JSZip.loadAsync(file).then( (zip) => {
          zip.forEach( (relativePath,zipEntry) => {
            this.filesList.push(relativePath);
            this.files.push(zipEntry);
          });
        });
      });
    },downloadSelectedFiles() {
      this.files.forEach( (file) => {
        JSZip.file(file).async('blob').then( (data) => {
          console.log(data);
        });
      });
    }
  }

如何调用 chrome.downloads.download 方法用户下载所有选定的文件?我尝试使用 $refs 但它只会选择一个复选框,我也不知道如何将从 JSZip 传递的对象转换为方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。