window.onload = nameFieldInit;function nameFieldInit() {
var userName = "";
if (document.cookie != "") {
userName = document.cookie.split("=")[1];
} document.getElementById("nameField").value = userName;
document.getElementById("nameField").onblur = setCookie;
}function setCookie() {
var expireDate = new Date();
expireDate.setMonth(expireDate.getMonth()+6); var userName = document.getElementById("nameField").value;
document.cookie = "userName=" + userName + ";path=/;expires=" + expireDate.toGMTString();
}大家帮我看看,我知道cookie的结构应该是userName=value;expired=value;path=value
这段代码为什么不对cookie经行";"分割,直接"="就可以得到userName的值了吗?

解决方案 »

  1.   

    因为他设置的document.cookie = "userName=" + userName + ";path=/;expires=" + expireDate.toGMTString();
    用=分割得到的数组的第2个元素,也就是索引为1的元素刚好就是userName
      

  2.   

    如果你对;分割,得到的是userName=value
    还要再对=做一次分割
      

  3.   

    不知道你那个方法能得到正确的值否
    我觉得要得到正确的值应该是先分割;再分割=
    即document.cookie.split(';')[0].split('=')[1];
    这样才可以得到正确的username
      

  4.   

    这段代码逻辑就不对撒如果用split 肯定要用2次!通常都是用正则 或者 substr 来获取 指定键的值!
    用上面这段代码,有一个前提,你要取的键值必须的第一个cookie 值!
      

  5.   

    即便就是取第一个cookie,userName = document.cookie.split("=")[1];取得也不是vaule吧,应该是整个第一个"="右边的字符串吧
      

  6.   

    这段代码逻辑就不对撒如果用split 肯定要用2次!我不是说了要用 2次 split 吗?通常都是用正则 或者 substr 来获取 指定键的值!
    用上面这段代码,有一个前提,你要取的键值必须的第一个cookie 值!