使用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)存在的、通過調(diào)用 URL.createObjectURL() 創(chuàng)建的 URL 對(duì)象。 // 當(dāng)你結(jié)束使用某個(gè) URL 對(duì)象之后,應(yīng)該通過調(diào)用這個(gè)方法來讓瀏覽器知道不用在內(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)存在的、通過調(diào)用 URL.createObjectURL() 創(chuàng)建的 URL 對(duì)象。 // 當(dāng)你結(jié)束使用某個(gè) URL 對(duì)象之后,應(yīng)該通過調(diào)用這個(gè)方法來讓瀏覽器知道不用在內(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)存在的、通過調(diào)用 URL.createObjectURL() 創(chuàng)建的 URL 對(duì)象。 // 當(dāng)你結(jié)束使用某個(gè) URL 對(duì)象之后,應(yīng)該通過調(diào)用這個(gè)方法來讓瀏覽器知道不用在內(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)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01js實(shí)現(xiàn)鍵盤Enter鍵提交表單的方法
這篇文章主要介紹了js實(shí)現(xiàn)鍵盤Enter鍵提交表單的方法,涉及javascript鍵盤事件的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05Google Map V3 綁定氣泡窗口(infowindow)Dom事件實(shí)現(xiàn)代碼
無法在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-03javascript 實(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-11Three.js利用orbit controls插件(軌道控制)控制模型交互動(dòng)作詳解
這篇文章主要給大家介紹了關(guān)于Three.js利用orbit controls插件,也就是軌道控制來控制模型交互動(dòng)作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-09-09詳細(xì)聊聊對(duì)async/await的理解和用法
隨著Nodev7的發(fā)布,越來越多的人開始研究據(jù)說是異步編程終級(jí)解決方案的 async/await,這篇文章主要給大家介紹了關(guān)于對(duì)async/await的理解和用法,文中通過實(shí)例代碼介紹的介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07