首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSaver.js -.saveAs:如何添加监听器

FileSaver.js -.saveAs:如何添加监听器
EN

Stack Overflow用户
提问于 2020-12-28 06:02:37
回答 1查看 300关注 0票数 1

我的代码(如果不是filesaver.js依赖项(https://github.com/eligrey/FileSaver.js/),我会让它可运行)

代码语言:javascript
复制
  var array = new Array();
  array[0] = 'a'; //.replace(/<br>/g, '\n\t');
  var blob = new Blob(array, {type: "text/plain;charset=utf-8"});

  var pub = function () {
    console.log('hello');
    console.log(new Error().stack);
  }

    let loc = window.location.pathname.substring(window.location.pathname.lastIndexOf("/") + 1);
    let obj = window.saveAs(blob, loc);
    obj.onwriteend = pub;
//    obj.onerror = pub;
    obj.onabort = pub;

保存文件时没有问题

问题是onwriteend处理程序在我选择文件之前就被调用了,而onabort永远不会被调用。我不知道这是怎么回事。当内容写入磁盘或文件选择器中止时,我正在尝试获取回调。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-29 01:53:06

FileSaver.js受到其使用save link隧道的限制:它声明的侦听器不起作用,并且无法获得已保存文件的名称和目录,甚至无法知道文件是否已保存。

使用browser-nativef而不是FileSaver.js是好的,因为它使用已建立的FileHandler / File API。但是,对我来说,browser-nativef的限制太大了:您无法获得文件下载的目录/ URI / URL。提供此“链接”的唯一方法是通过JavaScript所能看到的范围之外的(FileSave.js)浏览器文件下载过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65470895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档