Avatar billede thomase Nybegynder
31. december 2002 - 04:35 Der er 12 kommentarer og
1 løsning

resize iframe efter indhold

nu har jeg brugt  5 timer på at læse om dette problem, uden held.
se siden: http://elmer.spacerent.dk/ny.php

iframen skal have height efter indholdet. det skal virke på PC og Mac IE 4+ og NS6+

I de løsninger jeg har fundet i mange af de andre threads om dette emne, har det ikke virket på mac, men det kan lade sig gøre for det virker på tv2.dk i deres programoversigt. Jeg har dog ikke kunne finde ud af hvordan de gør det. Det tætteste jeg har været en løsning der virker på mac også er denne: http://support.microsoft.com/default.aspx?scid=KB;en-us;q278469
problemet her er bare er det er hovedfilen der har scriptet, og derfor ændres størrelsen kun første gang siden loades. Hvis indholdet af iframen ændres skal størrelsen også ændres, så jeg mangler en løsning hvor scriptet køres fra src-filen.

Indholdets størrelse varierer naturligvis, men kun i højden, og alle filer ligger lokalt.

håber på hjælp,
Thomas
Avatar billede skg Nybegynder
31. december 2002 - 09:48 #1
tænk over det, en iframe er et inline element på højde med et billede eller en table.

for at ændre størrelsen på den skal du have fat i elementet, og det er ikke bare lige sådan at gøre indefra selve framen.

Det er lettest at lave en function på den side der indeholder i framen, og så lade den tage to argumenter: højde og bredde; f.eks:

<script>
function setIframesSize(w,h) {
  var elm = document.all['iframeID']
  with(elm.style) {
    width=w+'px'
    height=h+'px'
  }
}
</script>

i alle de sider du loader i din iframe skal du så kalde top.setIframeSize(document.body.offsetWidth,document.body.offsetHeight) ved onload og så burde det virke
Avatar billede skg Nybegynder
31. december 2002 - 09:52 #2
undskyld...

den der function skal være:

<script>
function setIframesSize(w,h) {
  var elm = document.all?document.all['iframeID']:document.getElementById('iframeID')
  with(elm.style) {
    width=w+'px'
    height=h+'px'
  }
}
</script>
Avatar billede thomase Nybegynder
31. december 2002 - 13:51 #3
Det lader ikke til at virke. Hverken IE/pc eller IE/Mac. Vi du se på elmer.spacerent.dk/ny.php om jeg har gjort det rigtigt?
Avatar billede zuiq Nybegynder
01. januar 2003 - 17:10 #4
Du kunne istedet for en iframe bruge en ASP include?
Avatar billede Slettet bruger
01. januar 2003 - 17:15 #5
asp include naar siden er php.. Tror jeg naeppe :)

php include kan bruges bedst på denne måde...

<? if($side) { include("$side.php"); } else { include("dinforside.php"); } ?>

Hvor fx en af jeres sider hedder

bukser.php

linker du saaledes
www.mnl.dk?side=bukser

og includes er altså lang bedre :)
Avatar billede thomase Nybegynder
01. januar 2003 - 23:09 #6
grunden til jeg har valgt i frames er at jeg gerne vil kunne ændre den del af siden uden at hele siden skal refreshes.
Avatar billede Slettet bruger
01. januar 2003 - 23:12 #7
jamen du skal jo kun bruge den include p[ index siden... Tro mig.. hvis der skal vaere en online shop og saadan nogle ting.. gaar det helt galt n[r du bruger iframes..
Avatar billede Slettet bruger
01. januar 2003 - 23:21 #8
altså hvis der står Hej på siden bukser laver du en fil der hedder bukser.php og skriver hej og KUN hej i :)

Så har du hele din normale side.. som den altid ser ud

<html>
<body>

HER ER DER NOGET DESIGN......
blablalblablalbla

OG HER NÅR VI TIL DET STYKKE HVOR IFRAMEN VAR FØR... DEN IFRAME SKIFTER DU UD MED DEN KODE JEG GAV DIG...

<? if($side) { include("$side.php"); } else { include("dinforside.php"); } ?>


HER ER DER NOGET MERE DESIGN......
BLABLALBLABLALBLALBALblablalba
</body>
</html>

Når man så klikker linket bukser ser man der står Hej... ligesom iframe..

hvis folk som ser siden kigger på kilden ser man bare der står


<html>
<body>

HER ER DER NOGET DESIGN......
blablalblablalbla

OG HER NÅR VI TIL DET STYKKE HVOR IFRAMEN VAR FØR... DEN IFRAME SKIFTER DU UD MED DEN KODE JEG GAV DIG...

Hej


HER ER DER NOGET MERE DESIGN......
BLABLALBLABLALBLALBALblablalba
</body>
</html>

sådan laver man professionelle og ordentlige sider :)
Avatar billede thomase Nybegynder
01. januar 2003 - 23:47 #9
du får den... for at have overtalt mig til at droppe iframes.. nu kan jeg i det mindste komme videre. Men er der ikke måde man kan lave noget lignende hvor man kun refresher en del af siden. der skal ikke være webshop osv på den side, den kommer på på en side for sig....
Avatar billede Slettet bruger
02. januar 2003 - 00:00 #10
det er jo tilladt at bruge flere af dem... Fx hvis man skal se en reklame for
FØTEX på bluser siden linker man således...

?side=bluser&reklame=foetex

så har du måske flere forskellige reklamer på hver side... Bare et lille eksempel...

<? if($reklame == "foetex") {
echo "<img src=\"foetex.gif\">";
}
elseif (reklame == "superbrugsen") {
echo "<img src=\"brugsen.gif\">";
}
?>

sådan noget lignende kan man køre på :)


forresten... Arbejder du i Capitol? :)
Avatar billede thomase Nybegynder
02. januar 2003 - 00:19 #11
næh Manual i århus... men jeg kender godt capitol
Avatar billede carstone Praktikant
02. januar 2003 - 08:00 #12
Manual skateteam rokker for hårdt!! ;)
Avatar billede Slettet bruger
02. januar 2003 - 11:03 #13
Hehe okay :)

Jeg håber at du vil bruge de ting jeg har forklaret dig her da de er meget bedre en iframes...
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