Мы не можем перезаписать локальный текстовый файл через JavaScript, это небезопасно. Если вы хотите изменить локальный текстовый файл, вы можете загрузить его через JavaScript, затем прочитать текстовое содержимое на веб-странице, после его изменения загрузите его по локальному пути.
Пожалуйста, проверьте следующий образец:
<input type="file" id="inputfile" /><br />
<input type="button" id="btn-dwn" value="Download" /><br />
<textarea id="text-val" rows="4"></textarea><br />
<script>
function newFile(data, fileName) {
// download the content to a .txt file.
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
//IE11 support
console.log("IE& Edge");
// let blob = new Blob([data], { type: "text/html" });// text/plain;charset=utf-8
let blob = new Blob([data], { type: "text/plain;charset=utf-8" });
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {// other browsers
console.log("Other browsers");
var bl = new Blob([data], { type: "text/plain;charset=utf-8" });
var a = document.createElement("a");
a.href = URL.createObjectURL(bl);
a.download = fileName;
a.hidden = true;
document.body.appendChild(a);
a.click();
}
};
//using FileReader to read the .txt file content
document.getElementById('inputfile').addEventListener('change', function () {
var fr = new FileReader();
fr.onload = function () {
document.getElementById('text-val').value = fr.result;
}
fr.readAsText(this.files[0]);
});
//call the newFile function to download text file.
document.getElementById("btn-dwn").addEventListener('click', function () {
newFile(document.getElementById("text-val").value, "test.txt");
});
</script>