Strange Javascript Cookie Behaviour

J

Joe

Hi folks,

Been looking at this for the day so any ideas would be appreciated. Here's
the scenario, bear with me - it looks more complicated than it is :)

I have a page templating system that inherits from the page class and adds a
mixture of usercontrols and literals when requested.

One of the usercontrols is a menu that expands on being clicked using DHTML.
What I'm trying to do is to persist the expanded menu to other pages or
accross page refreshes so that if a user expands the menu for a menu item on
one page it will be rendered on the following page as expanded for that same
menu item.

As the id of the span needs to be stored when it's clicked I figured that
the easiest way to accomplish this would be to set and pass the id of the
expanded menu item (a <span> element) in a cookie using javascript and then
check for the existence of this cookie and use it's value to expand the menu
using the onLoad attribute of the body tag on the new page.

The cookie is not persisted accross sessions - i.e. no expiry date is set. I
have not set the path either.

At the start of a new session on entering the first page of the site the
function checks the cookie, see's that it doesn't exist yet (as a menu item
hasn't been clicked/expanded yet) and the page simply loads.

On the first page I have established using alert boxes that when I click the
menu item/span the correct id is being being returned to an alert box set to
catch the onclick event and then the cookie is successfully set to the value
of the span id as I use an alert box to return the value of the cookie after
it's set. This works for all menu items.

when I navigate to another page an alert box displaying the cookie value
indicates that the cookie has been successfully persisted and the correct
span is expanded.

However, if I then click on other spans in the menu, the alert box that
displays the id of the span I have clicked returns the correct value and the
span expands, the following line of javascript set's the cookie supposedly
using this span id but in the next line of code producing the second alert
box reading the cookie, the alert box shows that the cookie has been set to
the original span id and not the one I actually clicked. This is confirmed
when I navigate to another page as the original span id is in the cookie and
that span is expanded.

Anyone got any ideas what's going on here?????

Looking forward to hearing your ideas,

Bewildered Joe
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Staff online

Members online

Forum statistics

Threads
473,763
Messages
2,569,561
Members
45,035
Latest member
HoTaKeDai

Latest Threads

Top