Javascript 将本地存储还原到本地文件
有没有办法用jquery或JavaScript轻松地将本地存储保存并恢复到文件中 这有3种情况:Javascript 将本地存储还原到本地文件,javascript,jquery,html,Javascript,Jquery,Html,有没有办法用jquery或JavaScript轻松地将本地存储保存并恢复到文件中 这有3种情况: 使用特定的本地存储进行测试 在某些特定情况下对本地存储进行备份,这些情况下,此数据至关重要(我们希望在删除本地缓存时进行保存) 从现有本地存储设置另一个浏览器 保存和检索本地存储的过程分为两部分 首先,您必须能够以javascript可管理的形式检索本地存储的内容。由于本地存储是键值对的映射,因此最简单的方法是将本地存储转换为javascript对象。然后将该对象转换为JSON字符串。如何处理这个字
保存和检索本地存储的过程分为两部分 首先,您必须能够以javascript可管理的形式检索本地存储的内容。由于本地存储是键值对的映射,因此最简单的方法是将本地存储转换为javascript对象。然后将该对象转换为JSON字符串。如何处理这个字符串取决于您,但我发现让用户将字符串复制到电子邮件中是最简单的
function getLocalStorage() {
var a = {};
for (var i = 0; i < localStorage.length; i++) {
var k = localStorage.key(i);
var v = localStorage.getItem(k);
a[k] = v;
}
var s = JSON.stringify(a);
return s;
}
问题的最后一部分是如何保护数据不被覆盖。您不能写入本地文件,但是,您可以将数据复制到
中,并告诉用户如何将数据复制并粘贴到电子邮件或电子邮件中。我可能会将此作为对Nathaniel Johnson答案的评论,但我还没有声誉!关于这些方法,以下是his函数的一些更简单的版本:
function getLocalStorage() {
return JSON.stringify(localStorage)
}
function writeLocalStorage(data) {
Object.keys(data).forEach(function(key) { localStorage.setItem(key, data[key])})
}
下面的javascript适合我:
function getLocalstorageToFile(fileName) {
/* dump local storage to string */
var a = {};
for (var i = 0; i < localStorage.length; i++) {
var k = localStorage.key(i);
var v = localStorage.getItem(k);
a[k] = v;
}
/* save as blob */
var textToSave = JSON.stringify(a)
var textToSaveAsBlob = new Blob([textToSave], {
type: "text/plain"
});
var textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob);
/* download without button hack */
var downloadLink = document.createElement("a");
downloadLink.download = fileName;
downloadLink.innerHTML = "Download File";
downloadLink.href = textToSaveAsURL;
downloadLink.onclick = function () {
document.body.removeChild(event.target);
};
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
downloadLink.click();
}
函数getLocalstorageToFile(文件名){
/*将本地存储转储到字符串*/
变量a={};
for(var i=0;ifunction getLocalstorageToFile(fileName) {
/* dump local storage to string */
var a = {};
for (var i = 0; i < localStorage.length; i++) {
var k = localStorage.key(i);
var v = localStorage.getItem(k);
a[k] = v;
}
/* save as blob */
var textToSave = JSON.stringify(a)
var textToSaveAsBlob = new Blob([textToSave], {
type: "text/plain"
});
var textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob);
/* download without button hack */
var downloadLink = document.createElement("a");
downloadLink.download = fileName;
downloadLink.innerHTML = "Download File";
downloadLink.href = textToSaveAsURL;
downloadLink.onclick = function () {
document.body.removeChild(event.target);
};
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
downloadLink.click();
}