我作为学校项目的一部分在文本编辑器上工作,我的保存和开放代码存在一个小问题。
以下是我的按钮:
<button id="gu" onclick="save()">Save</button>
<button id="ab" onclick="open()">Open</button>
这是我的textarea:
<textarea name="comment" rows=30 cols=101 id="texto"></textarea>
这是我的javascript函数:
function save(){
gu = document.getElementById("texto");
localStorage.setItem("texto",gu);
console.log(texto+"="+gu);
}
function open(){
console.log("Abierto")
document.getElementById('texto').innerHTML=gu;
}
我的目标是,如果写点什么,然后按&#34;保存&#34;按钮,保存我textarea
内的内容,如果我按下&#34;打开&#34;按钮它显示我在textarea
上写的内容。
关于如何修复我的代码的任何想法?
对不起,如果我的英语不好。
答案 0 :(得分:1)
在这里:https://jsfiddle.net/cinerobert/qwgv18r5/
function save()
{
localStorage.setItem("someitem", document.getElementById("texto").value);
document.getElementById("texto").value = "";
console.log(texto + "=" + gu);
}
function retrieve(){
console.log("Abierto")
document.getElementById("texto").value = localStorage.getItem("someitem");
}
您不能使用open()作为函数名称,因为它已经是javascript中的内置函数,所以我将其更改为retrieve()。见这里:http://www.w3schools.com/jsref/met_win_open.asp
您是否有理由要求使用setItem()?使用变量(gu)和 setItem是多余的。无论哪种方式都可以。
另外,要在文本区域内获取和设置文本,您需要使用value()。
我还更改了save()函数,以便清除文本框,以便在单击retrieve()时看到发生的事情。
答案 1 :(得分:0)
以下是需要完成的事情
function save()
{
gu = document.getElementById("texto");
localStorage.setItem("texto",gu.innerText); //here you were saving the dom object not the text inside
console.log(texto+"="+gu.innerHTML);
}
function open()
{
console.log("Abierto")
document.getElementById('texto').innerHTML=localStorage.getItem("texto"); //here you need to get the text from your local storage
}