找到了使用sessionStorage显示最近查看过的产品的相当不错的脚本。只有一个问题:每个产品都可以存储和显示多次。
这是jsfiddle http://jsfiddle.net/r77oozh8/
还应该有一个IF来检查当前产品是否已经存储,如下所示:
// check if product already in storage
if(!productExistsInStorage()) {
var currentCount = parseInt(sessionStorage.getItem("storedCount"));
// add to storage
sessionStorage.setItem(currentCount.toString(), JSON.stringify(productInfo()));
// update storedCount var by one
sessionStorage.setItem("storedCount", (currentCount + 1).toString());
}
我试图成功,但没有任何成功。
如果产品数据已在sessionStorage中设置,如何保存产品数据?
答案 0 :(得分:1)
我自己查过后就发现了这篇帖子。
if ("value" in sessionStorage) {
alert("yes");
}
else {
alert("no");
}
答案 1 :(得分:0)
不是在每个产品的sessionStorage
中设置单独的项目,而是将它们全部设置在一个数组中。这样可以更容易检查它是否已经存在:
var currentItems = JSON.parse(sessionStorage.getItem('products'));
var currentProduct = productInfo();
if (currentItems.filter(function(p){return p.productURL == currentProduct.productURL}).length == 0) {
// add
}
答案 2 :(得分:-1)
为什么不检查该项目的会话存储是否为空?
if(sessionStorage.getItem("storedCount") === null)
{
//do something
}
更好的做一个功能,你可以传递一个项目的名称来检查它。
function doesStorageExist(item)
{
if(sessionStorage.getItem(""+item) === null)
{
//do something
}
}