как узнать если поддержка Web Storage?
Казалось бы должно работать
if (!localStorage) { // в браузере нет поддержки } В браузере safari есть опция "Частный доступ", при ее включении содержимое localStorage недоступно, создать новое св-во нельзя, но условие выше не срабатывает. Видимо localStorage есть, но сафари не работает с ним в данном режиме и localStorage.length == 0 Как мне узнать что web Storage в браузере есть, но у пользователя включен "Частный доступ"? Прописал в этом режиме так: localStorage.prop = "value"; alert(localStorage.prop); Хотел узнать что выдаст алерт, а он вообще не всплыл( |
alert( window.sessionStorage || window.localStorage ); |
Ну раз не всплыл, значит там ошибка.
var supportStorage = false; if ('localStorage' in window) { try { localStorage.setItem('test', 1); supportStorage = true; } catch (e) {} if (supportStorage) { localStorage.removeItem('test'); } } |
nerv_,
хотелось бы чтоб можно было решить так, но это не будет работать где есть поддержка, но нет доступа (как в моем случае) Nekromancer, Да, так работает! Хоть может затереть уже имеющееся св-во, но в моем случае это решаемо. Спасибо! |
Кстати, заметил особенность с localStorage в opera 12.02
Если пробежаться по свойствам объекта, то по дефолту там уже будет localStorage.length :) |
dmitry111,
Можно рендомным ключём проверять. var supportStorage = false, supportKey = 'supportKey' + Math.random(); if ('localStorage' in window) { try { localStorage.setItem(supportKey, 1); supportStorage = true; } catch (e) {} if (supportStorage) { localStorage.removeItem(supportKey); } } alert(supportStorage); |
Nekromancer,
да, можно и так |
Часовой пояс GMT +3, время: 02:25. |