Avatar billede Keld Nielsen Professor
27. juli 2004 - 10:41 Der er 21 kommentarer og
2 løsninger

Iframe der skal følge browserens højde

Jeg vil gerne lave en iframe, som følger browserens højde, altså bliver højere hvis browser sættes højere, skal gå til bund.

Jeg har lavet flg.:
<iframe id="produkt" name="produkt" style="position:absolute; width:537px; height:100 %; top:100px; left:2px; z-index:1;" frameborder="no" scrolling="yes" src="produkt_data.htm">
...men det virker ikke, iframe'en er ikke ret høj.

Nogen ideér ???
Avatar billede mik789 Nybegynder
27. juli 2004 - 10:54 #1
prøv også at sætte højde på <html> og på <body>, enten i et eksterns stylesheet:

<style type="text/css">
html {
  height: 100%;
}
body {
  height: 100%;
}
</style>

- eller inline i tagsene ligesom du har gjort med iframen.
Og måske det også betyder noget at du har et mellemrum mellem "100" og "%" i dit iframe-tag. Prøv at skrive det: 100%
Avatar billede mik789 Nybegynder
27. juli 2004 - 10:58 #2
men egentlig holder den jo ikke med 100%, for du har top:100px, så nogle af procenterne er jo allerede brugt. Hvad med at angive top relativt, f.eks. 10% og sætte iframen til 90% ?
Avatar billede roenving Novice
27. juli 2004 - 11:11 #3
-- og ellers skal man ud i at aflæse højden på document.body onload og sætte iframen derefter ...

-- og så er det også nødvendigt at sætte højden på html og body !-)
Avatar billede Keld Nielsen Professor
27. juli 2004 - 11:14 #4
Hvis jeg gør som 'mik789' foreslår og sætter højden til ca 80%, ser det rimelig ud, men som 'roenving' foreslår, ville et eller andet med 100%-100px jo være løsningen, hvordan sådan en regnestykke ellers skal sættes op.
Avatar billede roenving Novice
27. juli 2004 - 11:23 #5
<script language="javascript" type="text/javascript">
function ifrHeight(){
var t=(window.innerHeight)?window.innerHeight:document.body.scrollHeight;
document.getElementById('IFRAMEID').style.height=t-100+'px';
}
</script>

<body onload="ifrHeight();">

-- men du er nødt til at sætte de 100% på html og body så !-)
Avatar billede roenving Novice
27. juli 2004 - 11:24 #6
-- og iframen må ikke påvirke højden som udgangspunkt, så den skal i html-dokumentet sættes til at være så lille, at den altid kan være der !-)
Avatar billede mik789 Nybegynder
27. juli 2004 - 11:41 #7
det er måske også en idé at have et script der automatisk reloader siden ved resize, f.eks.:

function MyResize() {
self.location.reload();
}
self.onresize=MyResize;

roenving> hvorfor angiver du document.body.scrollHeight som alternativ? er det en IE-ting?
Avatar billede Keld Nielsen Professor
27. juli 2004 - 11:43 #8
virker ikke lige efter hensigten, "skymper" ikke sammen, og viser en alert:

"Java Script Error
Description:Et objekt er obligatorisk
Source:file:xxxxxx\produkt2.htm
Linie:21
"
...som er linie der starter med "document.get....."
Avatar billede roenving Novice
27. juli 2004 - 11:44 #9
Jepz ...

Window.innerHeight er selvfølgelig klart den bedste, da man så får fat i den højde, som vinduet har, men den findes ikke i bl.a. IE, som til gengæld har en scrollHeight !-)

-- og egentlig er det en fejl, for man bør vel benytte offsetHeight, som forstås af de fleste levende browsere !o]
Avatar billede roenving Novice
27. juli 2004 - 11:44 #10
IFRAMEID ?-)
Avatar billede mik789 Nybegynder
27. juli 2004 - 11:50 #11
men offsetHeight er vel hverken en window- eller en document property? det er vel kun element property, eller hvad? Kan i hvert fald kun finde den som sådan på: http://www.mozilla.org/docs/dom/domref/dom_el_ref.html#1023967 ikke under Window eller Document properties.

-- men det var et sidespring- undskyld fotograf! ;-)
Avatar billede roenving Novice
27. juli 2004 - 11:55 #12
-- også derfor den hentes på document.body, og derfor at det er en forudsætning, at der er 100% i stylesheet !-)
Avatar billede Keld Nielsen Professor
27. juli 2004 - 12:00 #13
ja ...min dumhed ...virker nu i Mozilla, men ikke i IE, her er højden på iframen fast.
Avatar billede roenving Novice
27. juli 2004 - 12:03 #14
Lyder mærkeligt, kører funktionen slet ikke ?-)
Avatar billede roenving Novice
27. juli 2004 - 12:04 #15
-- og du har sat

html,body{height:100%}

i stylesheetet ?-)

-- og du kan ligesågodt rette til:

var t=(window.innerHeight)?window.innerHeight:document.body.offsetHeight;
Avatar billede Keld Nielsen Professor
27. juli 2004 - 12:05 #16
Jeg har smidt det op så I ka' se det:
http://www.boye.com/cool-line-2/
vælg under menuen produkter / varianter
Avatar billede roenving Novice
27. juli 2004 - 12:14 #17
Prøv at bruge offsetHeight i stedet !-)

-- og jeg ville prøve at finde en løsning uden et frameset, da det alt andet lige er et problem i forhold til søgemaskinerne ...

At bruge en iframe inde i dokumentet synes jeg ikke er så slemt, men man skal da være opmærksom på, at der kan være links direkte til det, så det skal selv hente sit omgivende dokument !o]
Avatar billede Keld Nielsen Professor
27. juli 2004 - 12:21 #18
Kanon ...det virker!

Smid et svar begge to !

Løsningen med iframe valgte jeg istedet for løsningen med en variable tabel, den kan Mozilla ikke lide. Den ligger under produkter/produkter
Avatar billede roenving Novice
27. juli 2004 - 12:25 #19
Det var det overordnede frameset, jeg mente !-)

-- og du har vel opdaget, at din punkterede ramme ikke virker i Mozilla ?-)

-- og velbekomme '-)
Avatar billede mik789 Nybegynder
27. juli 2004 - 12:25 #20
ok ;-)
Avatar billede Keld Nielsen Professor
27. juli 2004 - 12:29 #21
Tak for hjælpen ...ja, der er flere ting der ikke virker i Mozilla, men jeg arbejder på at sitet skal ses i begge browsere, noget mere besværligt ...men det er jo den vej udviklingen går!
Avatar billede roenving Novice
27. juli 2004 - 12:32 #22
-- så er det faktisk nemmere at udvikle direkte i Mozilla, og så tilføje de twists som er nødvendige til IE, fordi den er så velbeskrevet !-)

-- og tak for point ;~}
Avatar billede -kenner- Nybegynder
03. august 2004 - 10:35 #23
sæt height="100%"
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