FileSaver.js -.saveAs: 如何添加监听器
FileSaver.js -.saveAs: How to add listeners
我的代码(除了 filesaver.js 依赖项 (https://github.com/eligrey/FileSaver.js/) 之外,我本来可以让它运行的)
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 永远不会被调用。我不知道这里发生了什么。我试图在内容写入磁盘或文件选择器中止时获得回调。
FileSaver.js 受限于 save link
隧道的使用:它声明的侦听器不起作用,无法获取保存文件的名称和目录,甚至不知道如果文件已保存。
使用 browser-nativefs 而不是 FileSaver.js 的好处在于它使用已建立的 FileHandler / File API。但是 browser-nativefs 对我的目的来说太有限了:你无法获取文件下载的目录/URI/URL。提供此“link”的唯一方法是通过 JavaScript 可以看到的范围之外的 (FileSave.js) 浏览器文件下载过程。
我的代码(除了 filesaver.js 依赖项 (https://github.com/eligrey/FileSaver.js/) 之外,我本来可以让它运行的)
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 永远不会被调用。我不知道这里发生了什么。我试图在内容写入磁盘或文件选择器中止时获得回调。
FileSaver.js 受限于 save link
隧道的使用:它声明的侦听器不起作用,无法获取保存文件的名称和目录,甚至不知道如果文件已保存。
使用 browser-nativefs 而不是 FileSaver.js 的好处在于它使用已建立的 FileHandler / File API。但是 browser-nativefs 对我的目的来说太有限了:你无法获取文件下载的目录/URI/URL。提供此“link”的唯一方法是通过 JavaScript 可以看到的范围之外的 (FileSave.js) 浏览器文件下载过程。