使用JS將字符串保存成文件到本地(.txt、.json、.md)
一、生成 TXT 文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>保存文件</title>
</head>
<body>
<button type="button" id="button"> 保存文件</button>
<script type="text/javascript">
window.onload = function(event) {
main()
}
function main() {
// 獲取按鈕
const button = document.getElementById('button')
// 給按鈕添加點(diǎn)擊事件
button.onclick = () => {
// 要保存的字符串
const stringData = '一段文本.'
// dada 表示要轉(zhuǎn)換的字符串?dāng)?shù)據(jù),type 表示要轉(zhuǎn)換的數(shù)據(jù)格式
const blob = new Blob([stringData], {
type: "text/plain;charset=utf-8"
})
// 根據(jù) blob生成 url鏈接
const objectURL = URL.createObjectURL(blob)
// 創(chuàng)建一個(gè) a 標(biāo)簽Tag
const aTag = document.createElement('a')
// 設(shè)置文件的下載地址
aTag.href = objectURL
// 設(shè)置保存后的文件名稱
aTag.download = "文本文件.txt"
// 給 a 標(biāo)簽添加點(diǎn)擊事件
aTag.click()
// 釋放一個(gè)之前已經(jīng)存在的、通過(guò)調(diào)用 URL.createObjectURL() 創(chuàng)建的 URL 對(duì)象。
// 當(dāng)你結(jié)束使用某個(gè) URL 對(duì)象之后,應(yīng)該通過(guò)調(diào)用這個(gè)方法來(lái)讓瀏覽器知道不用在內(nèi)存中繼續(xù)保留對(duì)這個(gè)文件的引用了。
URL.revokeObjectURL(objectURL)
}
}
</script>
</body>
</html>二、生成 JSON 文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>保存文件</title>
</head>
<body>
<button type="button" id="button"> 保存文件</button>
<script type="text/javascript">
window.onload = function(event) {
main()
}
function main() {
// 獲取按鈕
const button = document.getElementById('button')
// 給按鈕添加點(diǎn)擊事件
button.onclick = () => {
// 要保存的字符串, 需要先將數(shù)據(jù)轉(zhuǎn)成字符串
const stringData = JSON.stringify([{name: "張三",age: 18}], null, 2)
// dada 表示要轉(zhuǎn)換的字符串?dāng)?shù)據(jù),type 表示要轉(zhuǎn)換的數(shù)據(jù)格式
const blob = new Blob([stringData], {
type: 'application/json'
})
// 根據(jù) blob生成 url鏈接
const objectURL = URL.createObjectURL(blob)
// 創(chuàng)建一個(gè) a 標(biāo)簽Tag
const aTag = document.createElement('a')
// 設(shè)置文件的下載地址
aTag.href = objectURL
// 設(shè)置保存后的文件名稱
aTag.download = "json文件.json"
// 給 a 標(biāo)簽添加點(diǎn)擊事件
aTag.click()
// 釋放一個(gè)之前已經(jīng)存在的、通過(guò)調(diào)用 URL.createObjectURL() 創(chuàng)建的 URL 對(duì)象。
// 當(dāng)你結(jié)束使用某個(gè) URL 對(duì)象之后,應(yīng)該通過(guò)調(diào)用這個(gè)方法來(lái)讓瀏覽器知道不用在內(nèi)存中繼續(xù)保留對(duì)這個(gè)文件的引用了。
URL.revokeObjectURL(objectURL)
}
}
</script>
</body>
</html>三、生成 Markdown 文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>保存文件</title>
</head>
<body>
<button type="button" id="button"> 保存文件</button>
<script type="text/javascript">
window.onload = function(event) {
main()
}
function main() {
// 獲取按鈕
const button = document.getElementById('button')
// 給按鈕添加點(diǎn)擊事件
button.onclick = () => {
// 要保存的字符串
const stringData = '# 一級(jí)標(biāo)題\n## 二級(jí)標(biāo)題'
// dada 表示要轉(zhuǎn)換的字符串?dāng)?shù)據(jù),type 表示要轉(zhuǎn)換的數(shù)據(jù)格式
const blob = new Blob([stringData], {
type: 'text/markdown'
})
// 根據(jù) blob生成 url鏈接
const objectURL = URL.createObjectURL(blob)
// 創(chuàng)建一個(gè) a 標(biāo)簽Tag
const aTag = document.createElement('a')
// 設(shè)置文件的下載地址
aTag.href = objectURL
// 設(shè)置保存后的文件名稱
aTag.download = "markdown文件.md"
// 給 a 標(biāo)簽添加點(diǎn)擊事件
aTag.click()
// 釋放一個(gè)之前已經(jīng)存在的、通過(guò)調(diào)用 URL.createObjectURL() 創(chuàng)建的 URL 對(duì)象。
// 當(dāng)你結(jié)束使用某個(gè) URL 對(duì)象之后,應(yīng)該通過(guò)調(diào)用這個(gè)方法來(lái)讓瀏覽器知道不用在內(nèi)存中繼續(xù)保留對(duì)這個(gè)文件的引用了。
URL.revokeObjectURL(objectURL)
}
}
</script>
</body>
</html>總結(jié)
到此這篇關(guān)于使用JS將字符串保存成文件到本地的文章就介紹到這了,更多相關(guān)JS字符串保存成文件到本地內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
兩個(gè)select多選模式的選項(xiàng)相互移動(dòng)(示例代碼)
本篇文章主要是對(duì)兩個(gè)select多選模式的選項(xiàng)相互移動(dòng)示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01
js實(shí)現(xiàn)鍵盤Enter鍵提交表單的方法
這篇文章主要介紹了js實(shí)現(xiàn)鍵盤Enter鍵提交表單的方法,涉及javascript鍵盤事件的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05
Google Map V3 綁定氣泡窗口(infowindow)Dom事件實(shí)現(xiàn)代碼
無(wú)法在infowindow里面添加的div進(jìn)行綁定事件處理,官方的API,發(fā)現(xiàn)了google.maps.InfoWindow下面的Events里面有個(gè)domready事件2013-04-04
基于JavaScript實(shí)現(xiàn)智能右鍵菜單
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)智能右鍵菜單的相關(guān)資料,需要的朋友可以參考下2016-03-03
javascript 實(shí)現(xiàn)動(dòng)態(tài)側(cè)邊欄實(shí)例詳解
這篇文章主要介紹了javascript 實(shí)現(xiàn)動(dòng)態(tài)側(cè)邊欄實(shí)例詳解的相關(guān)資料,并附實(shí)例代碼,幫助大家學(xué)習(xí)理解,需要的朋友可以參考下2016-11-11
Three.js利用orbit controls插件(軌道控制)控制模型交互動(dòng)作詳解
這篇文章主要給大家介紹了關(guān)于Three.js利用orbit controls插件,也就是軌道控制來(lái)控制模型交互動(dòng)作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-09-09
詳細(xì)聊聊對(duì)async/await的理解和用法
隨著Nodev7的發(fā)布,越來(lái)越多的人開始研究據(jù)說(shuō)是異步編程終級(jí)解決方案的 async/await,這篇文章主要給大家介紹了關(guān)于對(duì)async/await的理解和用法,文中通過(guò)實(shí)例代碼介紹的介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07

