我正在尝试将多个可信内容条目保存到我的本地存储区以获取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的所有小知识,但似乎无法看到我做错了什么或者我应该在这里做什么。
非常感谢任何帮助。
答案 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;
};