javascript 操作cookie 删除问题

因为我们要做个播放器,需要用COOKIE 保存用户的试听列表。
测试的时候发现个问题:
1、单个删除,只要不是最后一个 都是OK的;
2、清空时 在IE中无效,在Firefox中可以清空 ,但是如果再点试听 就无法写入cookie。
3、IE中单个删除最后一条后,前面删除的所有的记录又重新读取出来了;
4、Firefox中单个删除最后一条后 效果跟清空一样。。。
哪位大大。帮忙搞定一下。。。急啊!!!!!
读写cookie代码如下:
这是清空代码
[code="javascript"]this.deleteAll=function(key)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
document.cookie = key + "=''" + "; expires="+ exp.toGMTString();
};[/code]
这是set代码 单个删除的时候也是用这个
[code="javascript"]
this.setCookie=function(key,value)
{
var expires_i = 1000*60*60*24;
var expires_date=new Date(new Date().getTime()+expires_i);
document.cookie=key+"="+escape(value)+";expires="+expires_date.toGMTString();
};
[/code]

这是获取cookie
[code="javascript"]
    this.getCookie=function(key)
{
    var arg = key+"=";
    var tem=document.cookie;
    if(tem!=null)
    {
        var pos1 = tem.indexOf(arg);
        var pos2 = tem.indexOf(";",pos1);
        if (pos1==-1){return null;}
        if (pos2==-1){pos2=tem.length;}
        tem=tem.substring((pos1+arg.length),pos2);
        return unescape(tem);
    }
    return "";
};
[/code]

/**

  • cookie管理对象
    /
    CookieUtil={
    /
    *
    • 设置Cookie
    • @param {string} 设置cookie的名称
    • @param {string} 设置cookie的值
    • @param {object} 其他选项{是一个对象作为参数}
      /
      set : function(name,value,option){
      var str=name+"="+escape(value);
      if(option){
      if(option.expireDays){//过期日期
      var date=new Date();
      var ms=option.expireDays*24*3600*1000;
      date.setTime(date.getTime()+ms);
      str+="; expires="+date.toGMTString();
      }
      if(option.path)str+="; path="+path; //设置访问路径
      if(option.domain)str+="; domain"+domain; //设置访问主机
      if(option.secure)str+="; true"; //设置安全性
      }
      document.cookie=str;
      },
      /
      *
    • 获取Cookie
    • @param {string} cookie的名称
    • @return {string} cookie的值
      /
      get : function(name){
      var cookieArray=document.cookie.split("; "); //得到分割的cookie名值对
      for(var i=0;i<cookieArray.length;i++){
      var arr=cookieArray[i].split("="); //将名和值分开
      if(arr[0]==name)
      return unescape(arr[1]); //如果是指定的cookie,则返回它的值
      }
      return "";
      },
      /
      *
    • 删除Cookie
    • @param {string} 需要删除的cookie名称
      */
      del : function(){
      this.set(name,"",{expireDays:-1}); //将过期时间设置为过去来删除一个cookie
      }
      };

function delAllCookie()

{
var ck=document.cookie; //获得全部COOKIE
for (c in ck) //循环删除
{

c.Expires=new Date();

}

}