Я пытаюсь протестировать функцию html5 localStorage.По какой-то причине, всякий раз, когда я пытаюсь извлечь значение из хранилища после обновления страницы, я получаю только возвращенные нулевые значения.(Если я попытаюсь получить значения в той же функции, в которой я их установил, я смогу их правильно восстановить).
Одна вещь: загружаемый html / javascript запрашивается с локального диска(например, я использую строку: "file: /// C: /testLocalStore.html" , чтобы перейти к файлу, а не запрашивать его с веб-сервера. Может ли это вызвать localStoreпроблемы, которые я вижу?
(Я хотел бы опубликовать пример полного кода, но у меня возникли некоторые проблемы с форматированием. Я опубликую его в ближайшее время).
<html> <head> <title>test local storage</title>
<base href="http://docs.jquery.com" />
<script src="http://code.jquery.com/jquery-1.3.js"></script>
<script type="text/javascript">
function savestuff()
{
var existingData = localStorage.getItem("existingData");
if( existingData === undefined || existingData === null )
{
// first time saving a map.
existingData = $("#mapName").val();
}
else
{
existingData = existingData + "," + $("#mapName").val();
}
localStorage.setItem("existingData", existingData);
// test is non-null here, it was properly retrieved.
var test = localStorage.getItem("existingData");
}
$(document).ready( function init()
{
// existing data is always null.
var existingData = localStorage.getItem("existingData");
if( existingData !== null )
{
var existingDataListHtml = existingData.split(",");
existingDataListHtml = $.each(existingData, function(data) {
return "<li>" + data + "<\/li>";
});
$("#existingData").html("<ul>" + existingDataListHtml + "<\/ul>");
}
} );
</script>
</head> <body>
<form id="loadFromUser" onsubmit="savestuff();">
<input id="mapName" type="text">
<input type="submit" value="save">
</form>
<div id="existingData"> </div>
</body> </html>