首页 > 解决方案 > HTML cookie 不能完全 JS 创建

问题描述

function writeCartToCookie(){
    var stringRepresentation = "";
    for (i = 0; i < cart.length; i++){
        stringRepresentation += "serial" + i + "=" + cart[i][0] + "; ";
        stringRepresentation += "price" + i + "=" + cart[i][1] + "; ";
        stringRepresentation += "name" + i + "=" + cart[i][2] + "; ";
        stringRepresentation += "qtty" + i + "=" + cart[i][3] + "; ";
    }
    stringRepresentation += stringRepresentation + "max-age=" + 60*60*24*7;
    /* ALERT BEFORE WRITE */ alert(stringRepresentation);
    /* WRITE */ document.cookie = stringRepresentation;
    /* ALERT AFTER WRITE */ alert(document.cookie);
}

结果:

第一条警报消息:

序列号0=12312312;价格0=₽810,000;name0=КОЛЕНВАЛ-F; 数量0=4;序列号1=2345465;价格1=₽820;name1=ШТУЦЕР ТИТАН; 数量1=85;序列号2=956;价格2=₽590,000;name2=ФОРСУНКА МЕГА; 数量2=1;序列号 3=2356996;价格3=₽100,000;name3=РАСПРЕДЕЛИТЕЛЬНЫЙ ВАЛ; 数量3=4;序列号0=12312312;价格0=₽810,000;name0=КОЛЕНВАЛ-F; 数量0=4;序列号1=2345465;价格1=₽820;name1=ШТУЦЕР ТИТАН; 数量1=85;序列号2=956;价格2=₽590,000;name2=ФОРСУНКА МЕГА; 数量2=1;序列号 3=2356996;价格3=₽100,000;name3=РАСПРЕДЕЛИТЕЛЬНЫЙ ВАЛ; 数量3=4;最大年龄=604800

第二条警报消息:

序列号0=12312312

所以“serial0”是唯一被写入的值为什么?

标签: javascripthtml

解决方案


任何一个中只能设置一个 cookie

document.cookie = "something=something";

任务。这是一个古老而奇怪的 API。因此,您必须在循环中设置每个 cookie。(另外,请确保iletvar某处声明。)

每个 cookie 都需要它自己的一组标志,例如max-age.


推荐阅读