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



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

var array = new Array();
array[0] = 'a'; //.replace(/<br>/g, 'nt');
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从来没有被调用过。我不知道这里发生了什么。当内容被写入磁盘或文件选择器被中止时,我试图得到一个回调。

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

使用browser-nativeefs而不是FileSaver.js的好处在于它使用了已建立的FileHandler/File API。但浏览器的本机引用对我来说太有限了:你无法获得文件下载的目录/URI/URL。提供这种";链接";是通过(FileSave.js(浏览器文件下载过程在JavaScript所能看到的范围之外。

最新更新