Avatar billede da_darkside Nybegynder
20. oktober 2009 - 14:00 Der er 2 kommentarer

problemer med script cookie

jeg kan ikke få nedenstående til at virke... hvad har jeg skrevet forkert i cookie ?

<script type="text/javascript">
<!--
    function toggle_visibility(id) {
      var e = document.getElementById(id);
      if(e.style.display == 'block')
          e.style.display = 'none';
          SetCookie(location,+id+,0);
      else
          e.style.display = 'block';
          SetCookie(location,+id+,1);
    }
   
function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
                + ";expires="+expire.toGMTString();
}

//-->
</script>

<a href="#" onclick="toggle_visibility('foo');">Click here to toggle visibility of element #foo</a>
<div id="foo">This is foo</div>
Avatar billede j4k0b Nybegynder
20. oktober 2009 - 17:49 #1
Du har en fejl i din syntax 2 steder:
SetCookie(location,+id+,0);
SetCookie(location,+id+,1);


+id+ giver dig fejlen. Erstat det med:

SetCookie(location,id,0);
Avatar billede mbm2016 Nybegynder
22. oktober 2009 - 14:59 #2
Hej da_darkside ;)

Jeg har lavet nogle modifikationer i dit script, og hos mig virker dette fint:


<script type="text/javascript">
<!--
    function toggle_visibility(id)
    {   
        var Element = document.getElementById(id);
        var CurDisplay = Element.style.visibility;
       
        if(CurDisplay == "visible" || CurDisplay == "")
        {
            Element.style.visibility = "hidden";
            SetCookie(id,Element.style.visibility);
        }
        else
        {
            Element.style.visibility = "visible";
            SetCookie(id,Element.style.visibility);
        }
    }
   
    window.onload = function()
                    {
                        var Elementer = document.getElementsByTagName("*");
                        for(var i = 0; i < Elementer.length; i++)
                        {
                            try{Elementer[i].style.visibility = FindCookie(Elementer[i].id);}catch(ex){}
                        }
                    }
 
    function SetCookie(navn,vd)
    {
        var ud = new Date();
        ud.setMonth(ud.getMonth()+12);
        document.cookie = ""+navn+"="+vd+";expires="+ud.toGMTString()+"";
    }

    function FindCookie(navn)
    {
        var cookies = document.cookie.split("; ");
        if(document.cookie != '')
        {
            for(i=0;i<cookies.length;i++)
            {
                if(cookies[i].split("=")[0] == navn)
                {
                    return cookies[i].split("=")[1];
                }
            }
        }
    }

//-->
</script>

<a href="#" onclick="toggle_visibility('foo');">Click here to toggle visibility of element #foo</a>
<div id="foo">This is foo</div>
<a href="#" onclick="toggle_visibility('foo2');">Click here to toggle visibility of element #foo2</a>
<div id="foo2">This is foo2</div>


Jeg har gjort sådan, at man kan styre de forskellige "DIV"´s uafhængigt af andre.

Jeg håber du kan bruge det ellers siger du lige til ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester