使用Blob将对象下载为JSON,而无需创建DOM元素

时间:2019-03-31 10:25:28

标签: javascript json reactjs file blob

我想通过单击DOM中存在的按钮来下载状态(反应)下存储的某些对象。我想避免创建额外的DOM元素并强制单击它(不确定是否可以)。

通过单击按钮,我正在启动类方法,其中e(事件)是一个自变量。在此方法内部,我创建了带有两个参数的新Blob对象:

var blob = new Blob([JSON.stringify([...this.state.data])], { type: "application/json" })
//also tried text/json

然后我分配了引荐来源网址并下载了以下属性:

e.target.href = URL.createObjectURL(blob)
e.target.download = "data.json"

控制台说一切似乎都设置好了:

Blob { size: 495, type: "application/json" } blob:http://localhost:3000/aa517a7b-2e7d-46a8-8949-c8946947ff51 data.json

但是以上操作无效,下载操作未触发。这是否意味着我需要再次“单击” blob链接?如果是这样,那么如果我已经通过单击“下载JSON”按钮触发了点击事件,该如何执行呢?请注意,我不想创建另一个DOM元素。

我在Chrome和FF上都尝试过,并得到了相同的结果。

0 个答案:

没有答案