保存一些contenteditables localstorage - - -

时间:2015-04-26 09:15:41

标签: javascript html5 local-storage

我正在尝试将多个可信内容条目保存到我的本地存储区以获取Chrome扩展程序。我当前的代码只保存一个满足的部分,但是当我尝试添加另一个单独的可信部分的Id时,它会删除所有已保存的信息或根本不执行任何操作。我是JS的新手,所以我希望我只是犯了一个简单的错误。我的HTML看起来像这样:

<div id = "content">
<div id= "tcontent" contenteditable="true" data-ph=" Make a note . . . "
style= "height: 300px; overflow: auto"></div>
<div id = "content2">
<div id= "tcontent2" contenteditable="true" data-ph= " Make a note . . . "
style= "height: 300px; overflow: auto"></div>
</div>

这是我的Javascript:

window.addEventListener('load', onLoad); function onLoad() {
checkEdits();
}
function checkEdits() {
if(localStorage.userEdits!=null) {
    document.getElementById("tcontent", "tcontent2").innerHTML += localStorage.userEdits;
}
};

document.onkeyup = function (e) {
e = e || window.event;
console.log(e.keyCode);
      saveEdits();

};
function saveEdits() {
var editElem = document.getElementById("tcontent", "tcontent2");
var userVersion = editElem.innerHTML;
localStorage.userEdits = userVersion;
};

基本上这段代码只保存一个(我首先放入getElementbyId的内容)。有没有办法保存这两个'内容? 我一直在玩我对javascript的所有小知识,但似乎无法看到我做错了什么或者我应该在这里做什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

document.getElementById是一个只占用一个元素ID的方法。您当前正在尝试将两个字符串传递给该方法。那不行。

请参阅此处的文档:https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById

此外,您必须将每个元素的innerHTML分别分配给localStorage中的每个已保存内容。

当然,你对语言还是比较陌生的我不想让你的答案过于复杂。话虽如此,请在下面找到您的代码并进行一些修改,以便能够分别在localStorage中保存这两个部分:

window.addEventListener('load', onLoad); function onLoad() {
    checkEdits();
}

function checkEdits() {
    if(localStorage.userEdits1!=null) {
        document.getElementById("tcontent").innerHTML = localStorage.userEdits1;
    }

    if(localStorage.userEdits2!=null) {
        document.getElementById("tcontent2").innerHTML = localStorage.userEdits2;
    }
};

document.onkeyup = function (e) {
    e = e || window.event;
    console.log(e.keyCode);
    saveEdits();
};
function saveEdits() {
    var editElem1 = document.getElementById("tcontent");
    var editElem2 = document.getElementById("tcontent2");

    localStorage.userEdits1 = editElem1.innerHTML;
    localStorage.userEdits2 = editElem2.innerHTML;
};