Avatar billede da_darkside Nybegynder
30. april 2003 - 20:24 Der er 8 kommentarer og
1 løsning

iframes ovenpå hinanden ?

Jeg har hurtigt fået lavet, meningen var så at man skal kunne skifte mellem forskellige iframes, ved at skjule de andre indholdet i de forskellige iframes skulle også gerne forblive det samme som da man skiftede til en anden iframe - nogen der kan se hvad jeg skal lave om etc ?

<html>

<head>
<script>
function CFram(FNr) {

if (FNr == "1") {
Frame1Status = ""
Frame2Status = "none"
Frame3Status = "none"
}

if (FNr == "2") {
Frame1Status = "none"
Frame2Status = ""
Frame3Status = "none"
}

if (FNr == "3") {
Frame1Status = "none"
Frame2Status = "none"
Frame3Status = ""
}
}

function Top() {
document.write("document.write("<iframe name=Screen1 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=Sc1.htm style=\"display:'",Frame1Status,"'></iframe>")
document.write("document.write("<iframe name=Screen2 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=Sc2.htm style=\"display:'",Frame2Status,"'></iframe>")
document.write("document.write("<iframe name=Screen3 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=Sc3.htm style=\"display:'",Frame3Status,"'></iframe>")
}
</script>
</head>

<body topmargin="0" leftmargin="0">

<center><a onclick="CFram(1);" href="#" >Vis Screen 1</a> | <a onclick="CFram(2);" href="#" >Vis Screen 2</a> | <a onclick="CFram(3);" href="#" >Vis Screen 3</a>
<Script>
Top();
</script>
</body>

</html>
Avatar billede =maddog= Nybegynder
30. april 2003 - 21:05 #1
anbring Top() i <body> og ikke i <head>. Du må ikke skrive regulært html ud i <head>
Avatar billede =maddog= Nybegynder
30. april 2003 - 21:05 #2
undskyld. min fejl. jeg kigger på det lidt mere.
Avatar billede roenving Novice
30. april 2003 - 21:22 #3
Hej

du har ihvertfald fået lagt flere lag ind over hinanden i programmeringen:

document.write("document.write("<iframe name=Screen1 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=Sc1.htm style=\"display:'",Frame1Status,"'></iframe>")

parses

document.write(
"document.write("
<iframe name=Screen1 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=Sc1.htm style=\"display:'
",Frame1Status,"
'></iframe>")

Umiddelbart ser det ud som om der mangler nogle escape-karakterer (\) -- måske kunne du også have gavn af at udnytte forskellen på " og '

hth
jes
Avatar billede =maddog= Nybegynder
30. april 2003 - 21:25 #4
Du gør det HELT forkert.
først og fremmest har du document.write to gange. Gu've. Desuden kan du ikke ændre på noget du har write't ind bare ved at ændre på den oprindelige streng.
Jeg har lavet det så det virker uden at fjerne document.write, så du kan genkende koden. Der er ingen grund til det, du kan roligt sætte det ind som normale <iframe> tags.
Her kommer koden, du vender bare tilbage med spørgsmål :

<html>
<head>
<script>
function CFram(FNr) {

if (FNr == "1") {
frame1.style.display="block";
frame2.style.display="none";
frame3.style.display="none";
}

if (FNr == "2") {
frame1.style.display="none";
frame2.style.display="block";
frame3.style.display="none";
}

if (FNr == "3") {
frame1.style.display="none";
frame2.style.display="none";
frame3.style.display="block";
}
}
// når en variabel findes inde i function(){} kan den kun "ses" derinde
frame1=null;
frame2=null;
frame3=null;

function Top() {
document.write("<iframe onload=\"frame1=this;\" name=Screen1 allowtransparency=true id=S1 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=\"about:blank\" style=\"display:'block'\"></iframe>");
document.write("<iframe onload=\"frame2=this;\" name=Screen2 allowtransparency=true id=S2 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=\"about:blank\" style=\"display:'none'\"></iframe>");
document.write("<iframe onload=\"frame3=this;\" name=Screen3 allowtransparency=true id=S3 marginwidth=0 marginheight=0 height=100% width=100% border=0 frameborder=0 src=\"about:blank\" style=\"display:'none'\"></iframe>");
}

onload = function() {
document2 = document.getElementById("S1").contentWindow.document;
document3 = document.getElementById("S2").contentWindow.document;
document4 = document.getElementById("S3").contentWindow.document;
document.body.style.background="red";
document2.body.style.background="green";
document3.body.style.background="blue";
document4.body.style.background="transparent";
}
</script>
</head>

<body topmargin="0" leftmargin="0">

<center><a onclick="CFram(1);" href="#" >Vis Screen 1</a> | <a onclick="CFram(2);" href="#" >Vis Screen 2</a> | <a onclick="CFram(3);" href="#" >Vis Screen 3</a>
<Script>
Top();
</script>
</body>
</html>
Avatar billede da_darkside Nybegynder
30. april 2003 - 21:34 #5
roenving > er ikke lige helt med på hvad du mener - kan ikke rigtigt se det du beskriver med parses ???
Avatar billede da_darkside Nybegynder
30. april 2003 - 21:45 #6
=maddog= > det ser faktisk ud til at virke helt perfekt - og har ikke rigtigt nogen spørgsmål da det hele ser fornuftigt ud :)) Mange Takker for hjælpen *S*
Avatar billede roenving Novice
30. april 2003 - 22:32 #7
Undskyld den manglende forklaring ...

Men hvis du kigger i =maddog=s kode vil du se at at de 'ydre' " (gåseøjne) ikke har \ (backslash -- escapekarakter) foran.

Backslashen betyder nemlig, at det efterfølgende tegn *ikke* er en del af programmeringen, men hører til det som 'sendes videre'.

At jeg henviser til parsing betyder, at de enkelte linjer som jeg har opdelt dem opfattes af programmeringen som enkeltdele -- hvilket sikkert vil afstedkomme en fejl fra fortolkeren, som ikke kan se nogen fornuft i, at man sender en 'document.write(' uden noget andet.

hth
jes
Avatar billede olebole Juniormester
30. april 2003 - 22:36 #8
<ole>

"Jeg har hurtigt fået lavet, ..."

Vær glad for det ... der er ikke noget værre end hård mave  ;oD

/mvh
</bole>
Avatar billede =maddog= Nybegynder
30. april 2003 - 22:41 #9
godt nok. jeg ligger et enkelt svar så. du kan altså roligt undlade at write dine <iframe>'s ind, med mindre det er en del af en browser-detection-master-plan (nyt ord opfundet af mig til lejligheden).
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