现在的位置: 网页制作教程网站制作教程 >正文
JS特效教程

js通过cookies实现商品浏览记录的保存和删除(代码实例)

发表于2018/10/18 网站制作教程 0条评论 ⁄ 热度 4,328℃

我们浏览电子商城网站时,网站常常会将我曾经浏览过的商品信息保存统计在一起,以供用户后续查看。那么该如何实现这一功能呢?

其实,用js和cookies想结合的方式就可以实现商品浏览记录的保存和删除。今天小编就以真实代码实例教大家,下面的代码可以设置cookies、更新和删除。

//JS实现顾客浏览商品的记录以及实现购物车的功能
function setCookie(name,value)
{
  var Days = 30;
  var exp  = new Date();
  exp.setTime(exp.getTime() + Days*24*60*60*1000);
  //在最后追加  ;path=/ 非常有必要。否则容易出现   在不同的目录下,调用同一个js方法来存储Cookie,到别的目录取不出或取出的值是不对的这种情况
  document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString()+";path=/";   //name=value;时间
}
function getCookie(name)
{
  var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));   // name= ;
  if(arr != null){
    alert("我是getCookie()方法:"+unescape(arr[2]));
    return unescape(arr[2]);
  }
  return null;
}
function delCookie(name)
{
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval=getCookie(name);
  if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString();
}
  /**
  * 加入购物车,存入cookie
  */
function goBuy(id, price)
{
  var basePath = document.getElementById("basePath").getAttribute("value");
  var newCookie = "";
  var oldCookie = getCookie("product");
  if(oldCookie) {
  //如果已经存在在cookie中,则不再添加
    if(inArray(oldCookie.split(","), id)) {
      newCookie = oldCookie;
    } else {
      newCookie = id + "," + oldCookie;
    }
  } else {
    newCookie = id;
  }
  setCookie("product", newCookie);
  location.href = basePath+"servlet/CookieServlet?param=car&pid="+id;
}
  /**
  * 浏览记录,存入cookie
  */
function goView(id){
  var basePath = document.getElementById("basePath").getAttribute("value");
  var newCookie = "";
  var oldCookie = getCookie("listView");
  if(oldCookie) {
    if(inArray(oldCookie.split(","), id)) {
      newCookie = oldCookie;
    } else {
      newCookie = id + "," + oldCookie;
    }
  } else {
    newCookie = id;
  }
  setCookie("listView", newCookie);
  location.href = basePath+"servlet/CookieServlet?param=listView&pid="+id;
}

补充:js的内容传送到后台,是需要解码的。将接收到的字符串解码如下:

java.net.URLDecoder.decode(realName,"UTF-8");

  • 暂无评论