AUTHORS
CATEGORIES
- Airsoft (2)
- Austin (8)
- Books (9)
- Cooking For Engineers (20)
- Credit Cards (2)
- Current Events (9)
- Deals (4)
- Dining (37)
- Fanpop (4)
- Food (808)
- Games (5)
- Hairy (6)
- Kitchen Gear (7)
- Life (24)
- Miscellaneous (6)
- Movies (15)
- Orthogonal Thought (6)
- Personal Computers (10)
- Photography (158)
- Rant (9)
- Ruby on Rails (2)
- San Francisco (5)
- Soap Making (5)
- Television (11)
- Texas (1)
- Things We Like (11)
- Travel (11)
- Wear or Not (1)
- Web 2.0 (9)
- What I Ate (861)
- Wikipedia (5)
- Windows 10 (3)
- Windows Mobile (1)
- WordPress (1)
ARCHIVE
- September 2018 (1)
- September 2017 (1)
- March 2017 (1)
- September 2016 (2)
- August 2016 (2)
- September 2015 (1)
- November 2014 (1)
- August 2014 (1)
- January 2014 (1)
- September 2013 (1)
- December 2012 (1)
- November 2012 (3)
- September 2012 (1)
- August 2012 (2)
- June 2012 (2)
- February 2012 (1)
- January 2012 (4)
- December 2011 (4)
- October 2011 (2)
- September 2011 (5)
- August 2011 (1)
- July 2011 (2)
- April 2011 (2)
- February 2011 (5)
- January 2011 (12)
- December 2010 (37)
- November 2010 (30)
- October 2010 (25)
- September 2010 (30)
- August 2010 (32)
- July 2010 (34)
- June 2010 (31)
- May 2010 (35)
- April 2010 (35)
- March 2010 (33)
- February 2010 (34)
- January 2010 (33)
- December 2009 (30)
- November 2009 (31)
- October 2009 (30)
- September 2009 (31)
- August 2009 (34)
- July 2009 (34)
- June 2009 (34)
- May 2009 (33)
- April 2009 (32)
- March 2009 (42)
- February 2009 (38)
- January 2009 (57)
- December 2008 (40)
- November 2008 (30)
- October 2008 (33)
- September 2008 (22)
- August 2008 (5)
- July 2008 (5)
- June 2008 (11)
- May 2008 (13)
- April 2008 (10)
- March 2008 (29)
- February 2008 (18)
- January 2008 (28)
- December 2007 (1)
- November 2007 (4)
- October 2007 (5)
- September 2007 (10)
- August 2007 (14)
- July 2007 (10)
- June 2007 (9)
- May 2007 (21)
- April 2007 (21)
Accessing and Reading Cookies in JavaScript correctly
Posted 25 June, 2009 at 5:25pm by Michael Chu(Filed under: Web 2.0)
Recently, I've had to deal with web browser cookies a lot, and, in one case, I had to read several cookies using JavaScript. I looked up how to read cookies and JavaScript and found out there's no built in function that parses out the value of a particular cookie key - you have to write your own function or copy an already written one. I grabbed one from a popular website that provides HTML and JavaScript lessons and tutorials, but then discovered that it was providing the wrong cookie value for this one particular cookie I was trying to read. I tried another function from another website and same problem.
The cookie I was trying to read started with the same name as part of the name of another cookie already set. For example, I was looking for "targetcookie" but an earlier cookie of the name of "the_wrong_targetcookie" exists. I got the value of "the_wrong_targetcookie" instead. I looked at the functions I had grabbed and it was pretty easy to see that the string searching implemented was too simplistic to work in all cases. (Another solution could have been to change the cookie names, but I wasn't the one setting the cookies. The API I was working with dictates the cookie names and both cookies were set by that API.)
I wrote this simple function instead:
function getCookie(cookie_name) { if (document.cookie && document.cookie.length>0) { cookie_index = document.cookie.indexOf(cookie_name+"="); if (cookie_index != 0) cookie_index = document.cookie.indexOf(" "+cookie_name+"="); if (cookie_index != -1) { cookie_start=document.cookie.indexOf("=",cookie_index)+1; cookie_end=document.cookie.indexOf(";",cookie_start); if (cookie_end==-1) cookie_end=document.cookie.length; return unescape(document.cookie.substring(cookie_start,cookie_end)); } } return ""; }
Feel free to copy this function for your own use (just leave me a note if you found it useful). If you find something wrong with it, let me know, and I'll try to fix it.