Avatar billede qweqwe Nybegynder
12. juni 2003 - 22:52 Der er 6 kommentarer og
1 løsning

Problemer med history.go, frames og onload

Jeg har en side med tre frames:

Frame 1 (kaldet 'menu') indeholder er frem- og tilbagefunktion som lyder:

<a href="java script:history.go(-1)" onfocus=this.blur() target="frmMain" onmouseover="image2.src='tilbage2.GIF';" onmouseout="image2.src='tilbage1.GIF';" style="text-decoration: none"><img name="image2" src="tilbage1.GIF" border=0 width="13" height="13"></a>
<a href="java script:history.go(+1)" onfocus=this.blur() target="frmMain" onmouseover="image3.src='frem2.GIF';" onmouseout="image3.src='frem1.GIF';" style="text-decoration: none"><img name="image3" src="frem1.GIF" border=0 width="13" height="13"></a>

Frame 2 (kaldet 'frmMain') indeholder brødteksten, men også en onload-funktion til frame 3 (kaldet 'frmMenu') som lyder:

<body bgcolor="#FFFFFF"  link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" onload="billede('cellensid'); top.frmMenu.location.href='f-menu.htm'">

Er det muligt at styrer history.go-funktionen således at den er bestemt af sideskiftene i frame 2 og eventuelle sideskift i frame 1 og 3 er uden betydning.
Avatar billede skovenborg Nybegynder
12. juni 2003 - 22:54 #1
Tjaa, en history kan du ikke umiddelbart lave om på - der er jo forståeligt nok nogle sikkerhedsbegrænsninger ved Javascript. Derfor kan du ikke direkte lave om på den.
Avatar billede grunken Nybegynder
12. juni 2003 - 22:56 #2
hvis jeg forstår rigtigt så ændre alle kald i frame 2 noget i frame 3 ?

men for at frame 1 og 3's side skift ikke får nogen betydning, skal du skifte

location.href='blabla.html';

ud med

location.replace('blabla.html')
Avatar billede qweqwe Nybegynder
13. juni 2003 - 07:38 #3
Det virker desværre ikke.
Avatar billede roenving Novice
13. juni 2003 - 08:00 #4
history-objektet eksisterer for hele browser-vinduet, og du kan derfor ikke styre hvordan det virker ...

Typisk vil en browser vedligeholde det på frame-niveau, så hvis du har flere frames som bruger onloads med meget mere, vil hvert tilfælde af en frameload give et entry i history, så du kan komme ud for at skulle trykke flere gange for at komme en tilbage ...

Du kan jo prøve at eksperimentere med værdien i history.go -- specielt med tilbage, history.go(-2) kan muligvis give dig det du vil have ...
Avatar billede roenving Novice
13. juni 2003 - 08:01 #5
Da du nu arbejder med et framesæt, kan du faktisk også konstruere dit eget history-objekt, for frameset-dokumentet ændres ikke, men her er vi ude i noget teori, for det har jeg aldrig prøvet ...
Avatar billede qweqwe Nybegynder
13. juni 2003 - 09:17 #6
Jeg har prøvet history.go(-2), men det virker ikke - faktisk kan jeg ikke se forskel på om der anvendes -1 og -2.
Avatar billede roenving Novice
13. juni 2003 - 09:29 #7
Hvordan der din history-liste ud efter et enkelt skifte (kig i Tilbage v -- den lille pil ved siden af i browseren)
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