1

Есть например скрипт, который срабатывает для специальной версии, сейчас он добавляет к каждому тегу в DOM стили. Чтобы они сохранялись при переходе по страницам необходимо их запоминать в cookie или localstorage насколько я понимаю. Выбрал последнее

function supports_html5_storage() {
    try {
        return 'localStorage' in window && window['localStorage'] !== null;
    } catch (e) {
        return false;
    }
}

var foo = localStorage.getItem("special-version-js");
// ...
localStorage.setItem("special-version-js", foo);

Ничего не выходит, внимание вопрос: что я делаю не так?

P.S.

http://htmlbook.ru/html5/storage

http://ruseller.com/lessons.php?id=593

уже обращался по ссылкам выше, не разобрался, прошу "разжевать мне".

Jarvis
  • 248
  • воу воу воу... то есть у вас есть скрипт, который КАЖДОМУ тегу проставляет в стили и вы хотите в куки или локал-сторадж запихнуть все эти стили каждого тега? это реально бред. думайте как сделать по-другому. – xaja Nov 06 '15 at 07:01
  • не в стили, а просто "стили". другой css нельзя подгружать, по требованиям. – Jarvis Nov 06 '15 at 07:07
  • это домашнее задание чтоли? это что за требования такие? – xaja Nov 06 '15 at 07:10
  • 1
    а Вас "special-version-js" уже есть? если его нету он null и вы его переустановили в null – JK_Action Nov 06 '15 at 07:11
  • Получается есть отдельный js, который это делает "special-versions.js", ну и код Localstorage вынесен в отдельный файл, все грунтом собирается. Вот мне и нужно получается их подружить. – Jarvis Nov 06 '15 at 07:47

1 Answers1

1

Если вы знаете JavaScript, то там все предельно ясно. А если не знаете, то и неудивительно, что Вы не можете разобраться и тогда совет один - учите JS.

Технология локального хранилища до предела проста.

Положить что-то в хранилище можно с помощью setItem:

localStorage.setItem([ключ], [значение]);

Получить потом значение из хранилища можно по ключу через getItem:

localStorage.getItem([ключ]);

Вот и вся технология. Есть еще правда removeItem([ключ]), clear() и lenght, но разобраться с ними так же можно без труда.


Так же, стоит помнить, что она доступна не во всех браузерах и для IE<8 будет к примеру недоступна. Поэтому перед использованием желательно этот факт проверить, для чего и используется самописная функция supports_html5_storage.

function supports_html5_storage() {
    try {
        return 'localStorage' in window && window['localStorage'] !== null;
    } catch (e) {
        return false;
    }
}

if( supports_html5_storage() ){
    //доступно - используем
} else {
    //недоступно, стоит подумать об альтернативе
}

Используем:

Страница установки стиля

if( supports_html5_storage() ){
    localStorage.setItem("special-version-js", true);    
} 

Любая другая страница, которая это проверяет:

if( supports_html5_storage() ){
    var item = localStorage.getItem("special-version-js");
    if(item != null && item = true) { устанавливаем стили }    
} 

Страница, которая сбрасывает стиль:

if( supports_html5_storage() ){
    localStorage.removeItem("special-version-js");
} 

Вот и все.

Alex Krass
  • 17,744