javascript - javascript中的blob创建函数保存多个文件
问题描述
有人可以向我解释这段代码是如何工作的。此外,输出不是我想要的。它保存 2 个文件而不是 1 个。
Javascript
function saveTextAsFile() {
var textToWrite = document.getElementById('textArea').innerHTML;
var textFileAsBlob = new Blob([ textToWrite ], { type: 'text/plain' });
var fileNameToSaveAs = "file.txt";
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();
}
var button = document.getElementById('save');
button.addEventListener('click', saveTextAsFile);
function destroyClickedElement(event) {
document.body.removeChild(event.target);
}
HTML
<button id="save" onclick="saveTextAsFile()">Save</button>
<textarea id="textArea" class="Textarea" placeholder="Click to Type" cols="20"></textarea>
解决方案
您的代码不起作用:
.value
textarea 输入值是用not读取的.innerHTML
,你没有输出所以改变:var textToWrite = document.getElementById('textArea').innerHTML;
到var textToWrite = document.getElementById('textArea').value;
您得到 2 个文件,因为您在调用相同函数的同一个按钮上创建了 2 个相同事件,删除其中一个:
<button id="save" onclick="saveTextAsFile()">Save</button>
这里删除onclick="saveTextAsFile()"
或删除这两行:var button = document.getElementById('save');
button.addEventListener('click', saveTextAsFile);
这将修复您的错误,并且就整个代码的工作方式而言,这不是代码审查网站,请访问https://codereview.stackexchange.com/或谷歌搜索每个命令并阅读其定义。
推荐阅读
- java - 访问被拒绝异常:testNG java.IOException
- c# - 如何在 ASP.NET Core 中获取已注册中间件的列表?
- r - Color selected parts of data in basic R plot
- ios - Cocoa Touch 框架:无法检测 Storyboard 中的自定义类
- windows-installer - Windows Installer 延迟执行 - 我们如何记录在延迟模式下运行的自定义操作?
- c - 从包含该数组的所有不同元素的数组中取出子数组的数量
- c++ - 在 C++ 中搜索二维数组以查看一行/列是否与另一行/列相同
- html - Mat-slide-toggle 看起来像普通复选框
- javascript - 如何将 JSON 对象从另一个视图发送到视图
- vue.js - 在 vuejs 中使 am4Charts 具有响应性