【发布时间】:2020-09-04 01:37:48
【问题描述】:
编辑:只是确认一下:我希望保存用户输入的内容,以便当他重新加载/离开网页并返回之前他写的内容仍然存在。
我尝试使用 cookie,但是当我重新加载页面时它只放置了一行 Default(variable)。我现在试图让它与 localStorage 一起工作,但是当我重新加载时,它将 textarea 设置为“[object HTMLTextAreaElement]”或空白。我读到这个错误可能是由于忘记在 getElementById() 之后添加 .value 引起的,但我没有犯这个错误。我在 Github(pages) 上托管和测试网页。我究竟做错了什么?这是代码(忽略 cmets,它也可能在 jsfiddle 中不起作用,因为 localstorage 对我不起作用):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>le epic web page</title>
</head>
<body><!-- = "\n"-->
<textarea id="txt" rows="4" cols="50" oninput="save();"></textarea>
<script>
var Default="P1 Homework: \nP2 Homework: \nP3 Homework: \nP4 Homework: \n";
if(localStorage.getItem("P") == ""){
document.getElementById("txt").value=Default;
localStorage.setItem("P")=Default;
}else{
document.getElementById("txt").value=localStorage.getItem("P");
}
//update cookie (called when typed)
function save(){
var txt=document.getElementById("txt").value;
//txt=txt.replace(/\r\n|\r|\n/g,"</br>");
localStorage.setItem("P",txt);//set cookie to innerHTML of textArea, expires in 1 day
}
//when page closed/reloaded
window.onbeforeunload = function(){
localStorage.setItem("P",txt);//update cookie when page is closed https://stackoverflow.com/a/13443562
}
</script>
</body>
</html>
【问题讨论】:
标签: javascript html cookies