0

我在一个页面上存储一个 cookie,并以具有此功能的形式输入:

<script type="text/javascript">
function WriteCookie()
{
   emailValue = escape(document.form.01_email.value) + ";";
   userIDValue = escape(document.form.01_userID.value) + ";";

   document.cookie="email=" + emailValue;
   document.cookie="userID=" + userIDValue;
}
</script>

<form name="form">
 <input type="email" class="form-textbox validate[required, Email]" id="input_10" name="01_email" size="26" value="email@email.com" />
 <input type="hidden" id="simple_spc" name="01_userId" value="1234" />
</form>

用户提交表单后,我会重定向到另一个页面,并使用此代码检索 cookie,但我需要让它在 cookie 中找到电子邮件和用户 ID,并将其插入此新页面上的输入值中:

<script type="text/javascript">
    function ReadCookie()
    {
       var allcookies = document.cookie;
       alert("All Cookies : " + allcookies );

       // Get all the cookies pairs in an array
       cookiearray  = allcookies.split(';');

       // Now take key value pair out of this array
       for(var i=0; i<cookiearray.length; i++){
          name = cookiearray[i].split('=')[1];
          value = cookiearray[i].split('=')[2];
          alert("Email is : " + name + " and UserID is : " + value);
       }
    }
    </script>


    <form name="form">
     <input type="email" class="form-textbox" id="input_10" name="02_email" size="26" value="" />
     <input type="hidden" id="simple_spc" name="02_userId" value="" />
    </form>

我知道一个用户很可能有多个 cookie,所以只找到我遇到问题的电子邮件和用户 ID。

4

3 回答 3

1

试试这个来读取你的 cookie。

function ReadCookie(){
    var key, value, i;
    var cookieArray  = document.cookie.split(';');

    for (i = 0; i < cookieArray.length; i++){
        key = cookieArray[i].substr(0, cookieArray[i].indexOf("="));
        value = cookieArray[i].substr(cookieArray[i].indexOf("=")+1);

        if (key == 'email'){
            alert('Email is ' + value);
        }

        if (key == 'userID'){
            alert('userID is ' + value);
        }
    }
}
于 2012-04-25T17:49:12.747 回答
0

试试这个:

// Now take key value pair out of this array
for(var i=0; i<cookiearray.length; i++){
    name = cookiearray[i].split('=')[1];
    value = cookiearray[i].split('=')[2];
    if (name == "email") 
      alert("Email is : " + value);
    if (name == "userID") 
      alert("UserID is : " + value);
}
于 2012-04-25T17:43:51.340 回答
0

我不会把这个答案归功于这个答案,但是在 quirksmode.org 上的 PPK 不能比 PPK 做得更好,因为它在一个包含“为什么工作”的解决方案中很优雅。

这是代码:

function createCookie(name,value,days) {
  if (days) {
    var date = new Date(), 
        expires = "";
    date.setTime(date.getTime()+(days*24*60*60*1000));
    expires = "; expires=" + date.toGMTString();
  } else {
    document.cookie = name+"=" + value + expires + "; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=", 
      ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') {
      c = c.substring(1,c.length);
    }
    if (c.indexOf(nameEQ) == 0) {
      return c.substring(nameEQ.length,c.length);
    }
  }
  return null;
}

function eraseCookie(name) {
   createCookie(name,"",-1);
}

这是关于 Cookie 的 PPK

高温高压

于 2012-04-25T18:08:08.130 回答