Avatar billede ras2000 Nybegynder
10. oktober 2000 - 11:07 Der er 10 kommentarer og
1 løsning

<div>s i frames

Jeg har holdt mig langt væk fra frames i hele mit html-liv, men nu er jeg nød til at bruge dem. Jeg laver en demonstration af nogle sider, hvor man skal trykke på en knap i en header framen, og så skifter siden i main framen. Nu skal jeg så, med en side der ligger i main framen, gøre et div synlig, altså sætte style.display=\'block\'. Hvordan gør man det? Jeg synes jeg har prøvet alt efterhånden. parent.main.document.all.div1.style.display virker i hvert fald ikke.
Avatar billede nixen Nybegynder
10. oktober 2000 - 11:21 #1
parent.framenavn.divnavn.style.display=\'block\'
Avatar billede nixen Nybegynder
10. oktober 2000 - 11:21 #2
prøv det lige - works for me :-)
Avatar billede ras2000 Nybegynder
10. oktober 2000 - 11:29 #3
Hej nixen!
Jeg har lige prøvet det, men min div har ikke noget navn, men et id. Der virker det i hvert fald ikke, jeg får parent.main.divid.style er ikke et objekt. Jeg er ikke meget for at ændre i siden der er inde i main, da den virker fint, og hele den her demo bare skal vise funktionaliteten i siderne.
Avatar billede el_gnu Nybegynder
10. oktober 2000 - 11:29 #4
Mon ikke følgende vil virke (x-browser selfølgelig :-):

IE = (document.all) ? true : false;
NS = (document.layers) ? true : false;

function hideShow(frame, divLag) {
  if (IE) {
      var sObj = parent.frames[frame].document.all[divLag].style;
      if (sObj.visibility == \'visible\')
        sObj.visibility = \'hidden\';
      else
        sObj.visibility = \'visible\';
  }
  else if (NS) {
      var sObj = parent.frames[frame].document.layers[divLag];
      if (sObj.visibility == \'show\')
        sObj.visibility = \'hide\';
      else
        sObj.visibility = \'show\';
  }
}

og så ser din knap sådan her ud:

<input type=\"button\" onClick=\"hideShow(\'main\', \'mitDiv\')\">

(-: el Gnu

PS: et godt link: http://www.dansteinman.com/dynduo/
Avatar billede nixen Nybegynder
10. oktober 2000 - 11:37 #5
el gnu\'s script ser ganske fornuftigt ud, men jeg kan ikke forstå at det eksempel jeg lavede ikke skulle virke - belært af tidligere fejltagelser testede jeg det nemlig :)
Jeg vil gætte på at der er et eller andet du har overset i
a) \'name\' på dine frames eller
b) \'id\' på din div...

en x-browser ting : NS er ikke så begejstret for at ændre \'display\' propertien - hold dig til visibility (som el_gnu viser) medmindre du er ligeglad med NS. Hvis du ikke er det bliver du under alle omstændigheder nødt til at sætte position til absolute på den div der skal vises/gemmes..
good luck :)
Avatar billede ras2000 Nybegynder
10. oktober 2000 - 11:46 #6
Tak for den fine kode, el_gnu, men den virker altså heller ikke. Jeg er ligeglad med NS(undskyld alle brugere!), jeg får en medd. main er ikke defineret. Mine frames har navnene footer og main. Det div jeg prøver at vise har id\'et stam1. Det script der er på selve siden som viser div\'et, bruger denne linie:
document.all.stam1.style.display = \'block\'; og den virker fint. Jeg har prøvet nixen\'s linie i min footer side, men den virker altså ikke, og jeg har tjekket at navnene passer. Jeg skriver:
parent.main.stam1.style.display=\'block\'; i footer, og får fejlen parent.main.stam1.style er ikke et objekt.
Avatar billede nixen Nybegynder
10. oktober 2000 - 11:50 #7
ok- så må vi finde ud af hvor fejlen er. Kan du ikke lige sende koden til dit frameset?
Avatar billede ras2000 Nybegynder
10. oktober 2000 - 11:53 #8
<html>

<head>
<title>Demonstration af \"DitHus\"</title>
<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">
</head>
<frameset rows=\"75,*\" bordercolor=\"black\">
  <noframes>
  <body>

  <p>Du kan ikke se frames. Det er nødvendigt at kunne se frames for at kunne følge denne demonstration. Få en nyere version af din browser.</p>

  </body>
  </noframes>
  <frame name=\"footer\" noresize target=\"main\" src=\"demobund.htm\" bordercolor=\"black\">
  <frame name=\"main\" src=\"../index.asp\">
</frameset>

</html>
Avatar billede nixen Nybegynder
10. oktober 2000 - 12:06 #9
hmmm... det var da underligt... Udover en target=\"main\" (som jeg ikke kan forstå hvad skal gøre) er der ikke noget galt med framesettet.
Avatar billede ras2000 Nybegynder
10. oktober 2000 - 12:39 #10
Hov! Jeg har fundet ud af hvorfor din kodestump ikke virkede. Jeg prøvede at læse siden ind, samtidig med at jeg prøvede at ændre style.display. Nu har jeg gjort det i to trin, som det bør og så virker det fint! Jeg giver dig dine 30
Avatar billede nixen Nybegynder
10. oktober 2000 - 13:39 #11
Tak skal du have!
Jeg kunne da heller ikke lige finde nogen fejl i noget af det jeg så, hverken fra dig eller mig..
Godt du fik det klaret :)
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