我想通过单击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上都尝试过,并得到了相同的结果。