Leggi i cookie con JavaScript

So come scrivere / creare cookie in 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=/"; 

Ma come posso leggere ognuno di essi in JavaScript perché voglio popolare le caselle di testo la prossima volta che l’utente arriva al modulo?

Ho provato questo ma non funziona:

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

Modifica con risposta:

Ho usato questo codice ………………………………

  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; } }  

E ha chiamato la funzione checkCookie () in questo modo dal window.onload

 <!-- // window.onload = initPage; function initPage() { checkCookie(); } 

// ->

Godere!!

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

imposta cookie

 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()); } 

prendi i cookie

 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 ""; } 

Questi sono molto * molto * riferimenti migliori di w3schools (il riferimento web più orribile mai fatto):

Esempi derivati ​​da questi riferimenti:

 // 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=/' 

Il riferimento a Mozilla ha anche una bella libreria di cookie che puoi usare.

Riferendosi a document.cookie ottieni l’intera stringa di cookie. Sono separati da punti e virgola.

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

Potresti quindi renderlo un object con nome-> mapping dei valori:

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

Ora puoi guardare un cookie "mycookie" in questo modo:

 var mycookieVal = cookieMap.mycookie; 

nota che questo è stato modificato dalla sua versione iniziale non funzionante - è ancora la stessa idea, ma non dovrebbe funzionare. L'idea è che il loop prelevi ciascuna delle parti di document.cookie separate da punto e virgola, e quindi divida ulteriormente ciascuna di esse in una parte nome (elementi prima di "=", eccetto spazi iniziali) e una parte "valore" (roba dopo il "=" alla fine della parte cookie). Il valore viene quindi memorizzato in "cookieMap" sotto il nome specificato.