Читать куки с помощью JavaScript - PullRequest
3 голосов
/ 25 мая 2010

Я знаю, как писать / создавать куки в JavaScript ..................................... ....................

//Create the cookies
document.cookie = "Name=" + Name + ";expires=Friday, 31-Dec-2011 12:00:00 GMT; path=/";
document.cookie = "Surname=" + Surname + ";expires=Friday, 31-Dec-2011 12:00:00 GMT; path=/";
document.cookie = "Number=" + Number + ";expires=Friday, 31-Dec-2011 12:00:00 GMT; path=/";
document.cookie = "Email=" + Email + ";expires=Friday, 31-Dec-2011 12:00:00 GMT; path=/";
document.cookie = "Country=" + Country + ";expires=Friday, 31-Dec-2011 12:00:00 GMT; path=/";
document.cookie = "Company=" + Company + ";expires=Friday, 31-Dec-2011 12:00:00 GMT; path=/";
document.cookie = "Title=" + Job + ";expires=Friday, 31-Dec-2011 12:00:00 GMT; path=/";

Но как мне прочитать каждый из них на JavaScript, потому что я хочу заполнить текстовые поля в следующий раз, когда пользователь придет в форму?

Я пробовал это, но это не работает:

var cookieName = ReadCookie("Name");
document.getElementById('txtName').value = cookieName;

Редактировать с ответом:

Я использовал этот код ....................................

<script type="text/javascript">

function getCookie(c_name)
{
  if (document.cookie.length>0)
  {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1)
        {
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
        }
     }
     return "";
 }

function checkCookie()
{
    Name = getCookie('Name');
    Surname = getCookie('Surname');
    Email = getCookie('Email');
    Company = getCookie('Company');
    Title = getCookie('Title');

    if (Email!=null && Email!="")
      {
      //Populate the text boxes..................................
      document.FormName.txtName.value = Name;
      document.FormName.txtSurname.value = Surname;
      document.FormName.txtEmail.value = Email;
      document.FormName.txtCompany.value = Company;
      document.FormName.txtjob.value = Title;
      }
   }

</script>

И вызвал функцию checkCookie () примерно так из окна. Загрузка

<SCRIPT TYPE='text/javascript' LANGUAGE='JavaScript'><!--    //

window.onload = initPage;

function initPage() 
{
    checkCookie();

}

// ->

Наслаждайтесь !!

Ответы [ 3 ]

2 голосов
/ 25 мая 2010

С http://w3schools.com/js/js_cookies.asp

набор печенья

function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
}

получить печенье

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}
1 голос
/ 08 июля 2013

Это намного * намного * лучшие ссылки, чем w3schools (самая ужасная веб-ссылка из когда-либо сделанных):

Примеры, полученные из этих ссылок:

// sets the cookie cookie1
document.cookie =
 'cookie1=test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/'

// sets the cookie cookie2 (cookie1 is *not* overwritten)
document.cookie =
 'cookie2=test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/'

// remove cookie2
document.cookie = 'cookie2=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'

Справочник Mozilla даже имеет хорошую библиотеку cookie, которую вы можете использовать.

0 голосов
/ 25 мая 2010

Ссылаясь на document.cookie, вы получаете всю строку куки. Они разделены точками с запятой.

var cookies = document.cookie.split(';'); // "cookies" will be an array

Затем вы можете сделать это объектом с отображением имени-> значения:

var cookieMap = {};
for (var i = 0; i < cookies.length; ++i) {
  cookies[i].replace(/^\s*([^=]+)=(.*)$/, function(_, name, val) {
    cookieMap[name] = unescape(val);
  });
}

Теперь вы можете посмотреть на печенье "mycookie" так:

var mycookieVal = cookieMap.mycookie;

примечание это было отредактировано с момента его первоначальной неработающей версии - все та же идея, но на самом деле она не должна работать. Идея состоит в том, что цикл принимает каждую из частей document.cookie, которые были разделены точками с запятой, а затем дополнительно разбивает каждую из них на часть имени (вещи перед "=", кроме начальных пробелов) и часть "значения" (заполнить после "=" до конца части cookie). Затем значение сохраняется в «cookieMap» под заданным именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...