[英]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.