2013-07-08 130 views
1

我試過在javascript中使用會話存儲功能。我在old.html文件&中存儲了一個動態數據,試圖在new.html網頁中檢索它。 getItem在new.html頁面中返回「null」。會話存儲不能正常工作

我的old.html文件有;

<script> 
var name=document.createTextNode("All the Best"); 
sessionStorage.setItem("data",name);</script> 

而new.html文件有;

<script> 
var newdata=sessionStorage.getItem('data'); 
alert(newdata); </script> 

回答

3

會話存儲存儲字符串,而不是DOM節點。直接存儲字符串:

<script> 
sessionStorage.setItem("data", "All the Best"); 
</script> 

<script> 
var newdata=sessionStorage.getItem('data'); 
alert(newdata); 
</script> 
+0

是否有任何方法來存儲DOM節點sessionStorage? – jmj

+0

我想將DOM節點中的數據從一個html文件傳遞到另一個html文件。 – jmj

+0

不需要。您在讀取數據時必須存儲其他內容並創建DOM節點。你可以存儲HTML,但我會建議考慮一種不同的方法。 IMO應該存儲數據,而不是HTML。 –

0

正如Dark Falcon所說,web(或會話)存儲只能存儲字符串值。 您可以嘗試存儲要保存的dom元素(可能含有innerHTML)的字符串表示形式。

var data = document.getElementById("test").innerHTML; 
sessionStorage.setItem("data", data); 

,後來retrive它在其他的文件:

var newdata=sessionStorage.getItem('data'); 
document.getElementById("anotherfileID").innerHTML = newdata; 

雖然,我不認爲從一個HTML文件中傳遞了一個DOM元素到另一個是做的最好的事情。你想做什麼 ?

+0

我將從webservice接收一組動態數據並將其加載到html頁面中。然後,我將選擇少數數據並將這些少數數據移入另一個html頁面。 – jmj

+0

好的,那麼使用JSON會更好嗎?這是否適用於您的案例,或者您確實需要只移動一些這些數據? – Zale

+0

我只限於使用Javascript。當我選擇一個選項第一個html頁面並點擊一個按鈕時,選定的選項必須移動到下一個html頁面。 – jmj