как узнать если поддержка 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, время: 19:52. |