我今天开始使用filesaver.js.我创建了以下功能:
function saving(){
var blob = new Blob(final_transformation, {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");
}
但是当我调用该函数时,我得到“无法构造'Blob':提供的第一个参数是null,或者是无效的Array对象。” 有什么想法吗?
答案 0 :(得分:20)
由于您不会告诉我们final_transformation
是什么,我们必须猜测没有上下文。试试这个:
function saving(){
var blob = new Blob([final_transformation], {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");
}
答案 1 :(得分:1)
我遇到了同样的错误。
请参阅https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob上的Blob构造函数文档:
var aBlob = new Blob( array[, options]);
array
是Array
,ArrayBuffer
,ArrayBufferView
,Blob
对象中的DOMString
,或任何此类对象的混合,将会放在Blob
内。
因此new Blob
的第一个参数非常具体-它只能是包含几种特定类型的对象的数组。常规字符串对我不起作用,但这可行:
> new Blob( [ new TextEncoder().encode( 'some text' ) ], { type: 'text/plain' } )
< Blob {size: 9, type: "text/plain"}