2016-11-20 77 views
-1

我正在使用文本編輯器作爲學校項目的一部分,我的保存和打開代碼存在一個小問題。保存並打開文本區域的內容

這裏是我的按鈕:

<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; 
} 

我的目標是,如果寫的東西,然後按「保存」按鈕,我的textarea裏面的內容被保存,如果我按下「打開」b utton它顯示了我在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()時看到發生了某些情況。

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 

}

+1

Textareas沒有'innerText'或'innerHTML'。順便說一句,'innerText'無論如何都是非標準的屬性。 – 2016-11-20 06:45:19