下面是简化版(保存的时候只需要key和value),这个支持FF
但是,IE里存的数据在FF里取不到,同样FF里存的数据在IE里也取不到//两个参数,一个是cookie的名称,一个是值
function setCookie(name,value)
{
var Days = 30; //此 cookie 将被保存 30 天
var exp  = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}//读取cookies函数
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}//删除cookie
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();
}

解决方案 »

  1.   


    function getCookie(name){
    var search = name + "=";
    if(document.cookie.length > 0){
    var offset = document.cookie.indexOf(search);
    if(offset != -1){
    offset += search.length;
    var end = document.cookie.indexOf(";", offset);
    if(end == -1){end = document.cookie.length;};
    return unescape(document.cookie.substring(offset, end));
    }else {
    return "";
    }
    }
    return null;

    /*写值到Cookie 中*/
    function setCookie(name, value,savedays){
    var today = new Date();
    var expires = new Date();
    var saveTime;
    if(typeof savedays == "undefined"){
    saveTime=30;
    }else{
    saveTime=savedays;
    }
    if(value instanceof Array){
    value=value.join();
    }
    if(saveTime==0){
    document.cookie = name + "=" + escape(value)+";";
    }else{
    expires.setTime(today.getTime() + 1000*60*60*24*Number(saveTime));
    document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString();
    }
    return value;
    }
      

  2.   

    测过了,用的firefox3.0.7测试代码如下:
    第一次访问时无任何反应,于是设置cookie:key为“abc”,value为“测试内容”
    以后访问时,由于cookie里有abc对应的数据,所以就alert“测试内容”
    <script>
    //两个参数,一个是cookie的名称,一个是值
    function setCookie(name,value)
    {
        var Days = 30; //此 cookie 将被保存 30 天
        var exp  = new Date();    //new Date("December 31, 9998");
        exp.setTime(exp.getTime() + Days*24*60*60*1000);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }//读取cookies函数
    function getCookie(name)
    {
        var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
        if(arr != null) return unescape(arr[2]); return null;
    }//删除cookie
    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();
    }if(getCookie("abc")){
    alert(getCookie("abc"));
    }else{
    setCookie("abc","测试内容");
    }
    </script>
    <input type="button" onclick="delCookie('abc')" value="删除cookie">
    看看是不是浏览器中禁用cookie了
      

  3.   

    看看是不是浏览器中禁用cookie了FF中 工具 --> 选项 --> 隐私 --> 
    检查下面三个:接受站点的cookie、接受第三方cookie、退出firefox时自动清除我的隐私数据
      

  4.   

    果然是的,我最近安装了俩个cookies的查看火狐插件引起的可以结贴了,谢谢楼上的各位