Avatar billede henninghabor Nybegynder
10. november 2005 - 16:24 Der er 13 kommentarer og
2 løsninger

Vis indholdet af div ved klik - Med cookie

Hej,

Jeg har givet op. Jeg kan simpelthen ikke få nedenstående til at virke. Ka' du?

Ved åben/luk skal der sættes en cookie, så valget huskes ved load af siden.

Det skal være så simpelt som muligt og helst kun være i funktionen ShowHide du skal ændre. :)

### HTML ###

<p style="font-weight: bold;"><img src="_arrowdown.png" onclick="ShowHide('id1', this);" style="cursor: pointer;" alt=""> Tilf&oslash;j nyt sp&oslash;rgsm&aring;l</p>
<div id="id1" style="display: none;">
Indhold
</div>

### JAVASCRIPT ###

function GetCookie(name)
{
    var start = document.cookie.indexOf(name + "=");
    var len = start + name.length + 1;

    if((!start) && (name != document.cookie.substring(0, name.length)))
    {
        return null;
    }

    if(start == -1)
    {
        return null;
    }

    var end = document.cookie.indexOf(";", len);

    if(end == -1)
    {
        end = document.cookie.length;
    }

    return unescape(document.cookie.substring(len, end));
}

function SetCookie(name, value, expires, path, domain, secure)
{
    var today = new Date();
    today.setTime(today.getTime());

    if(expires)
    {
        expires = expires * 1000 * 60 * 60 * 24;
    }

    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" +escape(value) + ((expires) ? ";expires=" + expires_date.toGMTString() : "") + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? ";secure" : "");
}

function ShowHide(id, img)
{
    div = document.getElementById(id);

    if(div.style.display == "block")
    {
        div.style.display = "none";

        img.src = '_arrowdown.png';
    }
    else
    {
        div.style.display = "block";

        img.src = '_arrowup.png';
    }

    SetCookie('showthis', '0', '', '/', '', '');
}
Avatar billede olebole Juniormester
10. november 2005 - 16:25 #1
<ole>

Hvad sker der - og hvad sker der ikke - når du prøver?  :)

/mvh
</bole>
Avatar billede roenving Novice
10. november 2005 - 16:29 #2
Tilføj
Avatar billede roenving Novice
10. november 2005 - 16:33 #3
Ups, jeg prøver igen:

Tilføj efter ShowHide-funktionen:

window.onload = function(){
  var nr = GetCookie("showthis");
  var div = document.getElementById("divID" + nr);
  var img = document.getElementById("imgID" + nr);
  ShowHide(div,img);
}

-- hvor forudsætningen er, at div'erne, der er skjult har id lig med divID0, divID1 osv. og billederne har id imgID0, imgID1 !-)
Avatar billede henninghabor Nybegynder
10. november 2005 - 17:13 #4
olebole>>Der sker desværre ikke så meget. Den åbnes og lukkes fint nok, men når man efter at have åbnet og loader siden igen, husker den intet.
Avatar billede roenving Novice
10. november 2005 - 17:15 #5
-- du henter jo aldrig informationen !-)
Avatar billede henninghabor Nybegynder
10. november 2005 - 17:16 #6
roenving>>Jeg har indsat din tilføjelse, men jeg har en skummel ide om at jeg ikke får at cookie rigtig.

Nu har jeg prøvet følgende uden resultat:

### JAVASCRIPTS ###

function ShowHide(id, img)
{
    div = document.getElementById(id);

    if(div.style.display == "block")
    {
        div.style.display = "none";

        img.src = '_arrowdown.png';

        SetCookie('showthis', div, '', '/', '', '');
    }
    else
    {
        div.style.display = "block";

        img.src = '_arrowup.png';

        SetCookie('showthis', div, '', '/', '', '');
    }
}

window.onload = function()
{
    var no = GetCookie("showthis");

    var div = document.getElementById("divID" + no);

    var img = document.getElementById("imgID" + no);

    ShowHide(div, img);
}
Avatar billede roenving Novice
10. november 2005 - 17:21 #7
Hrm, jeg var da også lidt for hurtig, det burde være sådan:

window.onload = function()
{
    var no = GetCookie("showthis");

    var img = document.getElementById("imgID" + no);

    ShowHide("divID" + no, img);
}
Avatar billede henninghabor Nybegynder
10. november 2005 - 19:36 #8
Ok, jeg ka' stadig ikke få det til at virke.

### HTML ###

<p style="font-weight: bold;"><img src="_arrowdown.png" id="imgID1" onclick="ShowHide('divID1', this);" style="cursor: pointer;" alt=""> Tilf&oslash;j nyt sp&oslash;rgsm&aring;l</p>
<div id="divID1" style="display: none;">
indhold
</div>
### JAVASCRIPTS ###

function ShowHide(id, imgID)
{
    div = document.getElementById(id);

    if(div.style.display == "block")
    {
        div.style.display = "none";

        img.src = '_arrowdown.png';

        SetCookie('showthis', document.getElementById("divID" + no), '', '/', '', '');
    }
    else
    {
        div.style.display = "block";

        img.src = '_arrowup.png';

        SetCookie('showthis', document.getElementById("divID" + no);, '', '/', '', '');
    }
}

window.onload = function()
{
    var no = GetCookie("showthis");

    var img = document.getElementById("imgID" + no);

    ShowHide("divID" + no, img);
}
Avatar billede roenving Novice
11. november 2005 - 07:49 #9
Hvad står der i cookien ?-)

Find den (i IE) ved at gå i Funktioner --> Internetindstillinger... --> Indstillinger... (Under Midlertidige internetfiler) --> Vis filer

-- find cookien (f.eks. vha. Sidst ændret !-) og åbn den (ignorer advarslen, hvis du er sikker på at det er den rigtige !-)
Avatar billede henninghabor Nybegynder
12. november 2005 - 23:33 #10
Hey roenving,

Ligger du et svar? Jeg har opgivet og må indse at jeg ikke er den store javascript haj som først antaget. :(
Avatar billede roenving Novice
13. november 2005 - 01:44 #11
Kan du ikke vise/fortælle, hvad cookien indeholder ?-)

-- jeg har på et tidligere tidspunkt bøvlet meget med cookies, hvor det viste sig, at problemet var, at document.cookie returnerede noget andet end jeg regnede med !-)
Avatar billede henninghabor Nybegynder
21. januar 2006 - 19:40 #12
Hej roenving,

Jeg har desværre ikke scriptet på siden mere. Ligger du et svar? :)
Avatar billede roenving Novice
21. januar 2006 - 19:45 #13
Ok, men behold selv de fleste af dine point '-)
Avatar billede henninghabor Nybegynder
21. januar 2006 - 19:49 #14
Ok. Tak.
Avatar billede roenving Novice
21. januar 2006 - 19:50 #15
-- og så takker jeg da for point ;~}
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