繁体   English   中英

将搜索关键字保存为JavaScript中的文本文件

[英]save search keywords to text file in JavaScript

我正在自定义chrome扩展(Google Dictionary)的功能,我想通过按下按钮来保存我查看文本文件的每个单词。 当前功能执行以下代码是将用户键入的每个单词保存在单独的文件中,并询问保存文件的位置。 但我想将每个单词附加到一个永久性的日志文件中。 在PHP中,这将非常容易,但是在javascript中这是有问题的,因为客户端脚本功能。 我找到了一个解决方案 ,但这真的很复杂,我不知道如何实现它。 任何其他解决方案/建议将不胜感激。

<!DOCTYPE html>
<html>
  <input type="text" id="inputTextToSave"><button id="define-btn" class="btn btn-primary" value="Define" onclick="saveTextAsFile()">Define</button>
<script type='text/javascript'>
 function saveTextAsFile()
    {
var textToWrite = document.getElementById("inputTextToSave").value;
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});

var downloadLink = document.createElement("a");
downloadLink.download = "log.txt";
downloadLink.innerHTML = "Download File";

downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
downloadLink.click();
    }
 </script>
 </html>

这是一个建议:为什么不将它保存在localStorage(或存储,具体取决于您的文件大小),而不是这样做。

然后在扩展的后台页面中,提供一个选项,使用常规文件对话框将这些单词下载为文件。

您可以使用Html 5网络存储 事实上它适用于所有主流浏览器。 以防你想将你的应用程序扩展到其他浏览器。 然后,您可以将读取的数据从存储写入文件。 Chrome存储

所以,如果有人对脚本解决方案感兴趣:

<!DOCTYPE html>
<html>
  <input type="text" id="inputTextToSave"><button id="define-btn" class="btn btn-primary" value="Define" onclick="saveTextAsFile()">Define</button>
<script type='text/javascript'>

function saveTextAsFile()
{
    var textToWrite = document.getElementById("inputTextToSave").value;
    var textToWriteOld = localStorage.getItem("inputTextStorage");
    if(textToWriteOld === null) textToWriteOld = "";
    localStorage.setItem("inputTextStorage", textToWriteOld + "\n" + textToWrite);
    var textFileAsBlob = new Blob([localStorage.getItem("inputTextStorage")], {type:'text/plain'});


    var downloadLink = document.createElement("a");
    downloadLink.download = "log.txt";
    downloadLink.innerHTML = "Download File";
    downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
    downloadLink.click();
}
</script>
</html>

任何其他改进也将受到赞赏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM