JavaScript編程語言是一種腳本語言,它能夠在網頁瀏覽器中執行腳本,用于增強與控制HTML頁面的交互性。其中之一的常用功能是從客戶端向服務器端傳輸數據。在這個過程中,JavaScript提供了許多機制,其中之一是通過JavaScript寫文件。這個功能的實現方法是使用HTML5 File API。
要使用JavaScript寫文件,我們需要一個HTML文件輸入控件。例如,假設我們有以下HTML代碼。
<html> <head> </head> <body> <form onSubmit="return saveTextAsFile()"> <input type="text" id="filename" placeholder="Enter file name"> <br> <textarea id="content" placeholder="Enter file content"></textarea> <br> <input type="submit" value="Save File"> </form> </body> </html>我們使用這個HTML文件輸入控件來輸入文件名和文件內容。用戶通過輸入控件輸入文件名和文件內容,然后通過單擊提交按鈕將文件保存在本地計算機上。 接下來,我們使用JavaScript來實現該功能。代碼如下:
function saveTextAsFile() { var textToWrite = document.getElementById("content").value; var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'}); var fileNameToSaveAs = document.getElementById("filename").value; var downloadLink = document.createElement("a"); downloadLink.download = fileNameToSaveAs; downloadLink.innerHTML = "Download File"; if (window.webkitURL != null) { downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob); } else { downloadLink.href = window.URL.createObjectURL(textFileAsBlob); downloadLink.onclick = destroyClickedElement; downloadLink.style.display = "none"; document.body.appendChild(downloadLink); } downloadLink.click(); return false; } function destroyClickedElement(event) { document.body.removeChild(event.target); }此代碼定義了兩個函數。 函數saveTextAsFile()使用Blob對象創建文本文件。Blob對象是代表二進制數據的一種格式,因此我們使用Blob對象而不是普通的字符串,以確保在不同的設備和平臺上都可以正確編碼和解碼數據。 函數destroyClickedElement(event)刪除臨時元素,它只使用URI的方式作為鏈接的下載。 當我們在HTML文本文件輸入控件中輸入文件名和文件內容并單擊提交按鈕后,文件將保留在本地計算機上。要查看保存的文件,您可以使用文件瀏覽器,并轉到您指定的位置來查看該文件。