getAttribute метод поведения пользовательских данных и localStorage в Firefox - PullRequest
0 голосов
/ 19 марта 2012

Я пишу веб-страницу, которая должна хранить постоянные данные. В IE я могу просто использовать поведение пользовательских данных для хранения данных или объектов. Кроме того, Userdata Behavior предлагает методы getAttribute и setAttribute для настройки хранимых объектов.

Но это не поддерживается firefox. С localStorage я могу хранить только строки с уникальным ключом. У меня вопрос: возможно ли настроить объекты, хранящиеся в localStorage, используя похожие методы, такие как getAttribute или setAttribute?

Я хочу преобразовать следующий код в новый, который должен работать под firefox, используя localStorage. Но я понятия не имею, как преобразовать методы setAttribute и getAttribute. Любая идея? Заранее большое спасибо.

<style type="text/css">
.storeuserData {
behavior: url(#default#userData);
</style>
<script type="text/javascript">
function fnSaveInput(){
   var oPersist=oPersistForm.oPersistInput;
   oPersist.setAttribute("sPersist",oPersist.value);
   oPersist.save("oXMLBranch");
}
function fnLoadInput(){
   var oPersist=oPersistForm.oPersistInput;
   oPersist.load("oXMLBranch");
   oPersist.value=oPersist.getAttribute("sPersist");
}
</script>
</head>

<body>

<form id="oPersistForm">
    <input class="storeuserData" type="text" id="oPersistInput">
    <input type="button" value="Load" onclick="fnLoadInput()">
    <input type="button" value="Save" onclick="fnSaveInput()">
</form>

1 Ответ

0 голосов
/ 19 марта 2012

Я не очень много знаю о реализации IE, но для локального хранилища вы можете попробовать что-то вроде этого:

function setDataValue(attr, value){
   //If local stoarge var doesn't exist, create it
    if(typeof window.localStorage.mydata == 'undefined') window.localStorage.mydata = '{}';
    //Read data from local storage in to object
    var data = JSON.parse(window.localStorage.mydata);
    //update object
    data[attr] = value;
    //save object back in to local storage
    window.localStorage.mydata = JSON.stringify(data);
}
function getDataValue(attr){
    return JSON.parse(window.localStorage.mydata)[attr];
}

В основном все две вышеупомянутые функции - это чтение и запись в JavaScriptобъект, сохраненный в localstorage (закодирован как JSON для целей хранения)

Ваши функции могут быть записаны в виде:

function fnSaveInput(){
    var oPersist=oPersistForm.oPersistInput;
    setDataValue('sPersist', oPersist.value);
}
function fnLoadInput(){
    var oPersist=oPersistForm.oPersistInput;
    oPersist.value = getDataValue('sPersist');
}

Обратите внимание, я написал весь этот код от руки, поэтому их может быть несколькоопечатки / ошибки в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...