本地存储cookie回退

时间:2016-08-08 08:21:05

标签: javascript cookies

我创建了一个本地存储功能来保存然后从cookie中加载购物车,但是当我尝试在另一台机器上访问此页面时,它会给我错误。如何添加回退到这些函数,以便如果在服务器或本地的其他计算机上查看代码,它也将在那里工作并基本上存储新的cookie。

ShoppingBasket.saveCart = function() {
    localStorage.setItem("shoppingCartCookie", JSON.stringify(this.cart));
};


// function to load cart
ShoppingBasket.loadCart = function() {
    this.cart = JSON.parse(localStorage.getItem("shoppingCartCookie"));
};

这是导致问题的代码......

ShoppingBasket.addItemToCart = function(name, price, count) {
    for (var i in this.cart) {
        if (this.cart[i].name === name) {
            this.cart[i].count += count;
            this.saveCart();
            return;
        }
    }
    var item = new this.Item(name, price, count);
    this.cart.push(item);
    this.saveCart();
};

它会导致错误消息Cannot read property 'push' of null

2 个答案:

答案 0 :(得分:0)

探测到你的购物车在localstorage中为null 检查购物车是否为null然后设置为新数组

ShoppingBasket.loadCart = function() {
    this.cart = JSON.parse(localStorage.getItem("shoppingCartCookie")) || [];
};

答案 1 :(得分:0)

首先需要检查密钥是否存在于本地存储中 -

if ("shoppingCartCookie" in localStorage) {
//Your logic 
}else{
//Your logic to create cookie
}

本地存储是特定于机器的,因此对于每个macjine,您首先需要存储shoppingCartCookie,然后只有您才能访问它。

希望这会对你有所帮助。