Avatar billede lasseq Nybegynder
14. marts 2004 - 15:24 Der er 25 kommentarer og
2 løsninger

Bibehold menu

Hej
Jeg har lavet en simpel menu på siden http://www.soren-ervig.com/soren%2Dervig/website/dansk/default.asp .
Menuen er en javascript/css-menu, der, når man holder musen over et punkt, automatisk viser et aktuelt underpunkt.
Mit problem  er, at når man har klikket på et underpunkt og man kommer til en ny side, "fjernes" alle undermenuer bortset fra hovedmenuen. Jeg vil gerne at de(n) aktuelle undermenu(er) vil være synlige også EFTER man har klikket på et link, så den besøgende ved hvor han/hun befinder sig.

Nogen der kan hjælpe mig med dette?
Avatar billede roenving Novice
14. marts 2004 - 15:31 #1
Hvis du reloader den del af siden også, vil den selvfølgelig være sammenfoldet ...

Men du kan jo gå en tur i kagebutikken og så onload aflæse en eventuel cookie !-)
Avatar billede lasseq Nybegynder
14. marts 2004 - 16:06 #2
klart, men selve menuen er placeret i en iframe, så har det ikke noget at sige?
Avatar billede roenving Novice
14. marts 2004 - 16:19 #3
Næh, kun for hvor en onload-funktion skal pege hen, når den skal udføres !-)

-- men hvis du kører det fra et asp-script, er det så ikke lettere at lægge det ind i din logik der ?-)

-- og så bed jeg lige mærke i, at menuen ikke virkede i Mozilla, selvom jeg ikke lige kunne finde en grund til det !-)

-- men hvis du nu bruger divs og spans ville det være mere 'rigtigt', for tabelrækker er ikke -- i min bog -- det optimale at bruge til at skjule og vise (og så er det vist Opera, som har problemer med sådan noget !-)
Avatar billede lasseq Nybegynder
14. marts 2004 - 18:47 #4
okay... jeg må så lave et frameset, så min iframe ikke skal opdateres hver gang?
tak for dit tip med browserkompatibiliteten. måske skulle jeg få dem lavet som div'er i stedet for... :D
Avatar billede roenving Novice
14. marts 2004 - 19:07 #5
Hvis du hopper over i et frameset skal du være opmærksom på søgemaskinernes direkte måde at adressere undersider (dette gælder også i forhold til iframes !-)

Deres robotter henter url'en fra den side, de finder, så det vil være nødvendigt at sikre, at de ikke nøjes med at vise siden uden omgivelserne, selv har jeg måttet finde på noget framing-noget:

http://roenving.users.whitehat.dk/WD5Opacity.html
Avatar billede lasseq Nybegynder
14. marts 2004 - 19:25 #6
netop...
derfor vil jeg også allerhelt ungå framesettet.
Siden fungerer perfekt bortset fra det med menuen...
Er der virkelig ikke andre alternativer, eller kan du give mig noget hjælp med brug af cookies til dette?
Avatar billede roenving Novice
14. marts 2004 - 19:31 #7
Ja, til cookies har jeg en maskine liggende, den skal så lige tilpasses en anelse ...
Avatar billede lasseq Nybegynder
14. marts 2004 - 19:41 #8
det vil glæde mig enormt at se mere til den!
Avatar billede roenving Novice
14. marts 2004 - 19:42 #9
-- du skal tilføje en skrivCookie til dine mouseover-ting:

onMouseOver="LukAlleHovedmenuer();document.getElementById('showtilbud').style.display = 'inline';skrivCookie('hovedmenu','showtilbud',1);"

onMouseOver="LukAlleUndermenuer();document.getElementById('jagtforeninger').style.display = 'inline';skrivCookie('undermenu','jagtforeninger',1);">

-- og så i menu-dokumentet i iframen tilføje:

<script language="javascript" type="text/javascript">
function skrivCookie(name,value,expTime,path){//Tid i dage
    switch(skrivCookie.arguments.length){
        case 1:
            var expTime = 0;
            var path = "/";
        case 2:
            var expTime = 0;
            var path = "/";
        case 3:
            var path = "/";
    }
    var exp = new Date().getTime()+expTime*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = name + " = " + escape(value) + ";expires=" + exp + ";path=" + path;
    document.cookie = cook;
}
function hentCookie(name){
    if (document.cookie){
        var n = document.cookie.indexOf(name+"=");
        if (n>-1){
            var val = document.cookie.substring(n+name.length+1);
            n = val.indexOf(";");
            if(n>-1)val=val.substring(0,n);
            return unescape(val);
        }
    }
    return null;
}
function udfoldMenuer(){
  var hmenu = hentCookie('hovedmenu');
  if(hmenu){
    document.getElementById(hmenu).style.display = 'inline';
    var umenu = hentCookie('undermenumenu');
    if(umenu)document.getElementById(umenu).style.display = 'inline';
  }
}
window.onload = udfoldMenuer;
</script>
Avatar billede roenving Novice
14. marts 2004 - 19:43 #10
Hov !-)

    var umenu = hentCookie('undermenu');
Avatar billede roenving Novice
14. marts 2004 - 19:44 #11
Måske skal man, for at være sikker, også skrive en tom undermenu-cookie, når der skrives en hovedmenu-ting ...
Avatar billede lasseq Nybegynder
14. marts 2004 - 20:13 #12
Tusind tak!
Jeg har desværre ikke tid til at afprøve koden nu, men jeg vil vende tilbage i næste weekend...
På forhånd tak :D
Avatar billede roenving Novice
14. marts 2004 - 20:16 #13
Jamen, det gør du bare !-)
Avatar billede lasseq Nybegynder
20. marts 2004 - 16:48 #14
Hej Roenving.
Jeg har nu indsat scriptet som du beskrev, men fejlen "hmenu ikke defineret" bliver ved med at komme frem.
Kan du hjælpe mig?
Se evt. linket på hjemmesiden for at se fejlen.
Avatar billede roenving Novice
20. marts 2004 - 17:02 #15
Du er kommet til at rette forkert !-)

function udfoldMenuer(){
  var hmenu = hentCookie('hovedmenu');
  if(hmenu){
    document.getElementById(hmenu).style.display = 'inline';
    var umenu = hentCookie('undermenu');
    if(umenu)document.getElementById(umenu).style.display = 'inline';
  }
}
Avatar billede lasseq Nybegynder
21. marts 2004 - 12:19 #16
Mange tak!
Nu virke det sørme!
Post mig et svar og du vil få dine point !
Hvordan ligger det egentlig med browserkompatibilitet mht. til brug af cookies?
Avatar billede roenving Novice
21. marts 2004 - 12:32 #17
Cookies har været med i alle javascript-versioner, men der er nogle småfejl i visse implementeringer, f.eks. at der i nogle browsere er begrænsninger på antallet af cookies pr. domæne, at IE3 kun tillader et name/value-par i en cookie og at Mac OS2 havde en fejl i tiden, så den var forud ...

Så det største problem med cookies er, at de kan slås fra og/eller kan kræve bekræftigelse lokalt !-)

-- og velbekomme '-)
Avatar billede roenving Novice
21. marts 2004 - 12:32 #18
;O)
Avatar billede lasseq Nybegynder
21. marts 2004 - 12:58 #19
Okay. Og tak for svaret.
Hvis folk har cookies slået fra er den eneste begrænsing vel, at undermenuen så ikke bliver husket? Det ødelægger vel ikke grundprincippet i menuen?
Avatar billede roenving Novice
21. marts 2004 - 13:01 #20
Næh, for hvis cookies er slået fra vil if-sætningerne gøre, at intet udføres, så det er fuldstændig ufarligt !-)

-- og tak for points ;~}
Avatar billede lasseq Nybegynder
22. marts 2004 - 08:59 #21
Forresten...
Roenving, kan du hjælpe mig med dette...
Hvis man går ind under "Bøger" (som er et hovedpunkt), bibeholdes sub-menuerne stadigvæk! Er der en løsning for at kunne ændre dette?
Avatar billede roenving Novice
22. marts 2004 - 21:49 #22
Se roenving 14/03-2004 19:44:29:

onMouseOver="LukAlleHovedmenuer();document.getElementById('showtilbud').style.display = 'inline';skrivCookie('hovedmenu','showtilbud',1);skrivCookie('undermenu','',1);"
Avatar billede lasseq Nybegynder
23. marts 2004 - 08:32 #23
Tak :)
Avatar billede roenving Novice
23. marts 2004 - 21:10 #24
U'r welcome ;O)
Avatar billede lasseq Nybegynder
08. maj 2004 - 12:35 #25
Tak for svaret... Og undskyld min lange svartid... Post mig et svar og du skal få dine point... Mange tak for hjælpen :D
Avatar billede roenving Novice
08. maj 2004 - 13:11 #26
Velbekomme '-)
Avatar billede roenving Novice
08. maj 2004 - 13:45 #27
-- og tak 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