-
cookies in show/hide divs
This script works fine, but it saves cookies only when the navigator is open. Closing it, the cookies stop to save. How to resolve this?
HTML Code:
<html>
<head>
<script type="text/javascript">
function getCookieVal(offset) {
endstr = document.cookie.indexOf (";", offset)
if(endstr == -1) endstr = document.cookie.length
return unescape(document.cookie.substring(offset, endstr))
}
function GetCookie(name) {
arg = name + "="
alen = arg.length
clen = document.cookie.length
var i = 0
while (i < clen) {
j = i + alen
if(document.cookie.substring(i, j) == arg) return getCookieVal(j)
i = document.cookie.indexOf(" ", i) + 1
if(i == 0) break
}
return null
}
function SetCookie (name, value, per, exp) {
cstr = name + "=" + escape(value) + ";"
if(per){
addtime=(exp>0) ? exp : 31536000000
expdate = new Date()
expdate.setTime(expdate.getTime() + addtime)
expdate = expdate.toGMTString()
cstr+=" expires=" + expdate
}
document.cookie = cstr
}
function DeleteCookie(name) {
exp = new Date()
exp.setTime (exp.getTime() - 1)
cval = GetCookie(name)
if(cval != null)
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString()
}
function setDisplay(div,disp)
{
if (disp!=null)
div.style.display=disp;
}
function expandCollapse(id)
{
var data=id.split(':');
var div = document.getElementById(data[0]);
if (div.style.display=='none')
{
div.style.display='block';
SetCookie(id,'block');
}
else
{
div.style.display='none';
SetCookie(id,'none');
}
return false;
}
function setState(pageID)
{
var div;
var i=1;
while (div=document.getElementById('Div'+(i++)))
setDisplay(div,GetCookie(div.id+':'+pageID));
}
</script>
</head>
<body onload="setState('page1')">
<p>
<a href="#" onclick="return expandCollapse('Div1:page1')">Expand/Collapse</a>
<div id ="Div1" style="display:block;">Div1 content</div>
</p>
<p>
<a href="#" onclick="return expandCollapse('Div2:page1')">Expand/Collapse</a>
<div id ="Div2" style="display:block;">Div2 content</div>
</p>
<p>
<a href="#" onclick="return expandCollapse('Div3:page1');">Expand/Collapse</a>
<div id ="Div3" style="display:block;">Div3 content</div>
</p>
</body>
</html>
thanks...
-
use onbeforeunload="doStuff()" in your body tag
-
Thank you, justinbarneskin, but it doesn't work... Do you know another way to make the thing happen?
-
I need it persists after I close and open the navigator again...
that's what I do:
HTML Code:
function SetCookie (name, value, per, exp) {
cstr = name + "=" + escape(value) + ";"
if(per){
addtime=(exp*24*60*60*1000)
expdate = new Date()
expdate.setTime(expdate.getTime() + addtime)
expdate = expdate.toGMTString()
cstr+=" expires=" + expdate
}
and it occasiones no effect...
do you know what more I can try?
-
SetCookie (name, value, per, exp)
if you don't have the argument per when calling your function
exp will move up to be interpreted as per
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
Forum Rules
|
|
Bookmarks