2015-04-26 3 views
0

Я пытаюсь сохранить более чем одну запись контента, доступного для контента, в мой локальный ресурс для расширения Chrome. В моем текущем коде сохраняется только один контент, разрешающий контент, но когда я пытаюсь добавить другой идентификатор отдельного контекстно-зависимого раздела, он либо удаляет всю сохраненную информацию, либо вообще ничего не делает. Я довольно новичок в JS, поэтому надеюсь, что просто делаю простую ошибку. Мой HTML выглядит следующим образом:Сохранение некоторых contenteditables localstorage - - -

<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

document.getElementById - это метод, который использует только один элемент. В настоящее время вы пытаетесь передать две строки методу. Это не будет работать.

Пожалуйста, обратитесь к документации здесь: 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; 
}; 
+0

Он работал отлично. Спасибо, что объяснил это и дал мне пример. Очень ценится для новичков JS :) – kichadi

Смежные вопросы