Leer las cookies con JavaScript

Sé cómo escribir / crear cookies en 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=/"; 

Pero, ¿cómo puedo leer cada uno de ellos en JavaScript porque quiero rellenar los cuadros de texto la próxima vez que el usuario acceda al formulario?

Lo he intentado pero no funciona:

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

Editar con respuesta:

Usé este código ………………………………

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

Y llamó a la función checkCookie () así desde la ventana.oncarga

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

// ->

¡¡Disfrutar!!

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

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

obtener cookies

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

Estas son referencias mucho * mucho * mejores que w3schools (la referencia web más terrible jamás hecha):

Ejemplos derivados de estas referencias:

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

La referencia de mozilla incluso tiene una buena biblioteca de cookies que puedes usar.

Refiriéndonos a document.cookie obtienes toda la cadena de cookies. Están separados por punto y coma.

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

A continuación, puede convertirlo en un objeto con asignación de nombre-> valor:

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

Ahora puedes mirar una cookie "mycookie" de esta manera:

 var mycookieVal = cookieMap.mycookie; 

tenga en cuenta que esto ha sido editado desde su versión inicial rota, sigue siendo la misma idea, pero no debería funcionar realmente. La idea es que el ciclo tome cada una de las partes de document.cookie separadas por punto y coma, y ​​luego divida cada una de ellas en una parte de nombre (cosas antes del "=", excepto espacios iniciales) y una parte de "valor" (cosas después de "=" hasta el final de la parte de cookie). El valor se almacena en "cookieMap" bajo el nombre de stack.