使用原生方法保存文件到本地
基本流程
- 确定要保存的文本、保存格式及保存文件类型;
- 根据保存格式生成
url
链接,设置文件的下载地址; - 创建一个
a 标签
(即a标签
指向的就是我们要保存的文件); - 给
a 标签
添加点击事件,下载文件到我们指定的地址; - 释放
url
链接;
实现方式
- 1,
document.createEvent
创建事件,我们自己给DOM创建一个事件;- 创建自定义事件流程:
- 创建事件;
- 定义事件名;
- 监听事件;
- 分发给触发对象(触发对象可以是任何元素或其他事件目标);
- 创建自定义事件流程:
function download(data,type,filename) {
let text = JSON.stringify(data.value)
let domElement = document.createElement('a')
domElement.setAttribute('href', `data:${type},`+ encodeURIComponent(text))
domElement.setAttribute('download', filename)
if(document.createEvent) {
let event = document.createEvent('MouseEvents')
event.initEvent('click', true, true)
domElement.dispatchEvent(event)
}else{
domElement.click
}
}
- 2,浏览器事件;
function download(data,type,filename) {
const button = document.getElementById('button')
// 给按钮添加点击事件
button.onclick = () => {
const text = JSON.stringify(data.value)
if(type === 'blob'){
const blob = new Blob([text], {
type: "text/plain;charset=utf-8"
})
}else if(type === 'json'){
const blob = new Blob([text], {
type: 'application/json'
})
}else if(type === 'markdown'){
const blob = new Blob([text], {
type: 'text/markdown'
})
}
// 根据 blob生成 url链接
const objectURL = URL.createObjectURL(blob)
const domElement = document.createElement('a')
domElement.href = objectURL
domElement.download = filename
domElement.click()
URL.revokeObjectURL(objectURL)
}
}
文章来源地址https://www.toymoban.com/news/detail-703608.html
文章来源:https://www.toymoban.com/news/detail-703608.html
到了这里,关于js保存文件到本地的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!