Avatar billede emkay Nybegynder
21. februar 2005 - 09:25 Der er 7 kommentarer og
1 løsning

Styre billeder på tværs af framesets

Hejsa

Jeg har et lille problem med nogle frames. Jeg skal skifte et billede i en frame, der ligger 2 framesets "ude" og så et enkelt inde.

En kort skitse ku se sådan ud:

fil1 indeholder frameset med fil2 og fil3.

fil2 indeholder billedet der skal skiftes.

fil3 indeholder yderligere et frameset med blandt andet fil4.

fil4 indeholder så et javascript, der skal skifte sourcen til billedet i fil2. Javascriptet ser således ud:

window.parent.parent.document.frames[0].image1.src='image2.jpg';


Det virker fint i Internet Explorer, men i Firefox kommer der en fejl.
Hvordan ska det laves for at det virker i alle browsere?


De fire filer, ser sådan ud i deres helhed:

fil1.htm:
****************************
<html>
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
</head>
<frameset rows="*,*">
    <frame name="top" src="fil2.htm">
    <frame name="bottom" src="fil3.htm">
    <noframes>
<body>
</body>
</noframes>
</frameset>
</html>

****************************

fil2.htm:
****************************
<html>
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
</head>
<body>
<img src="image1.jpg" id="image1">
</body>
</html>
****************************

fil3.htm
****************************
<html>
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
</head>
<frameset cols="*,*">
    <frame name="frame1" src="">
    <frame name="frame2" src="fil4.htm">
    <noframes>
<body>
</body>
</noframes>
</frameset>
</html>
****************************

fil4.htm
****************************
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<script language="javascript">
function skiftbillede() {
window.parent.parent.document.frames[0].image1.src='image2.jpg';
}
</script>
</head>
<body onload="skiftbillede()">
</body>
</html>
****************************

På forhånd tak :o)

M
Avatar billede roenving Novice
21. februar 2005 - 10:25 #1
parent.parent.top.document.getElementById('image1').src = 'image2.png';
Avatar billede emkay Nybegynder
21. februar 2005 - 11:21 #2
Duer desværre ikke.. Man skal jo ind i en frame igen efter man er gået to gange ud med "parent.parent"..
Avatar billede roenving Novice
21. februar 2005 - 14:11 #3
-- og det er der problemet er, for top er et reserveret ord, så det jeg skrev vil selvfølgelig ikke virke, men ellers er det faktisk måden at gøre det på ...

-- men to forskellige måder at løse det på:

1. Brug et andet navn end top til din topframe:

parent.parent.topFrame.document ...

2. tag fat i den via frames-collectionen:

parent.parent.frames['top'].document ...
Avatar billede emkay Nybegynder
22. februar 2005 - 10:58 #4
Doh! :oP Hehe.. Men nu virker det jo.. Mange tak! :o) Vil du ha point..? For så må du jo lige skrive det som svar..
Avatar billede roenving Novice
22. februar 2005 - 16:06 #5
Velbekomme '-)
Avatar billede roenving Novice
22. februar 2005 - 16:06 #6
-- men hov, 200 point er alt for mange, så behold du selv langt de fleste !-)
Avatar billede emkay Nybegynder
22. februar 2005 - 17:39 #7
Nej nej.. Man ska da ha en go belønning når man hjælper :o)
Avatar billede roenving Novice
23. februar 2005 - 15:56 #8
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