【发布时间】:2016-12-11 07:39:04
【问题描述】:
我有一个 contenteditable div 作为编辑器,允许用户输入和保存文本。单击保存按钮后,我提示他们询问他们要将文本保存为什么。
然后将标题保存到 localstorage 并附加到单独的 div,在那里他们单击标题,保存它的文本将显示在编辑器中。
现在的问题是,每当我刷新页面时,附加的数据就会消失。想知道如何在刷新时将附加数据保留在那里?另外,我需要它仍然能够链接到它的内容,而不仅仅是变成 div 中的一堆文本。
我在这里简化了整个代码:
<!doctype html>
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js">
</script>
</head>
<body>
<div style="width:10em; height:10em; border-style:solid; border-color:black;" id="editor1" contenteditable="true"></div>
<button id="savebtn">Save Changes</button>
<div style="width:10em; height:5em; border-style:solid; border-color:red;" id="Contentable"></div>
<script>
var editElem = document.getElementById("editor1");
$(document).ready(function() {
$("#savebtn").click(function() {
var title = prompt("What would you like your title to be?");
localStorage.setItem(title, editElem.innerHTML);
titles = localStorage.getItem("titles");
if (titles == null) {
titles = [];
} else {
titles = JSON.parse(titles);
}
titles.push(title);
localStorage.setItem("titles", JSON.stringify(titles));
var htmlData = "<a onclick=showData('" + title + "')>" + title + "</a><br>";
$("#Contentable").append(htmlData);
var userVersion = editElem.innerHTML;
localStorage.setItem("userEdits", userVersion);
editElem.innerHTML = "";
});
});
function showData(txt) {
editElem.innerHTML = localStorage.getItem(txt);
}
</script>
</body>
</html>
编辑:如何使用“删除”按钮从 div 中删除数据?如果 div 过于拥挤并且用户希望删除一些无用的标题。
【问题讨论】:
-
您是否尝试过在
.ready()处理程序中显示localStorage的内容?
标签: javascript jquery html