HTML5 LocalStorage: Проверка наличия ключа [дубликат]
этот вопрос уже есть ответ здесь:
почему это не работает ?
if(typeof(localStorage.getItem("username"))=='undefined'){
alert('no');
};
цель состоит в том, чтобы перенаправить пользователя со страницы индекса на страницу входа, если он еще не зарегистрирован.
Вот это localStorage.getItem("username")) переменная не определена для момент.
Это для приложения iOS phonegap.
4 ответов:
слово спецификация:
метод getItem (key) должен возвращать текущее значение, связанное с данным ключом. Если данный ключ не существует в списке, связанном с объектом, то этот метод должен возвращает null.
вы должны на самом деле проверить против
null.if (localStorage.getItem("username") === null) { //... }
The документация MDN показывает, как
getItemметод реализуемые:Object.defineProperty(oStorage, "getItem", { value: function (sKey) { return sKey ? this[sKey] : null; }, writable: false, configurable: false, enumerable: false });если значение не задано, то возвращается
null. Вы тестируете, чтобы увидеть, если этоundefined. Проверьте, если это .if(localStorage.getItem("username") === null){
обновление:
if (localStorage.hasOwnProperty("username")) { // }другой способ, соответствующий, когда значение не должно быть пустой строкой, нулем или любым другим ложным значением:
if (localStorage["username"]) { // }
Comments