Avatar billede themepark Nybegynder
15. juni 2003 - 21:33 Der er 15 kommentarer og
1 løsning

Bredde og højde på dokument og ramme

1. Hvordan kan man få bredden og højden på et dokument, der sidder i en ramme, vha JavaScript?

2. Hvordan kan man få bredden og højden på et enkelt dokument, der vises i browseren (dvs. bredde og højden af den del af browseren hvor dokumentet vises, og ikke alle værktøjslinjerne og den slags medberegnet)?
Avatar billede medions Nybegynder
15. juni 2003 - 21:35 #1
screen.width
window.height

//>Rune
Avatar billede snokey Nybegynder
15. juni 2003 - 21:36 #2
forstår ikke helt dit spørgsmål men du vil have gjort browseren højer
Avatar billede grunken Nybegynder
15. juni 2003 - 21:42 #3
1.
hvad er det lige du mener ? (frames?)

2.
dette finder den indre størrlse på et vindue :)

<html>
<body>
</body>
</html>

<script>
if (navigator.appName == "Microsoft Internet Explorer"){
  bredde = document.body.offsetWidth;
  hojde  = document.body.offsetHeight;
}

if (navigator.appName == "Netscape"){
  bredde = window.innerWidth;
  hojde = window.innerHeight;
}
document.write(bredde+'*'+hojde)
</script>
</head>
Avatar billede roenving Novice
16. juni 2003 - 00:12 #4
>>grunken

Men en frame er et window-objekt, så den er vel også god nok til det !-)
Avatar billede grunken Nybegynder
16. juni 2003 - 01:11 #5
Jow, du har ret, men jeg forstod jo ik lige hvad der mentes :)
Avatar billede roenving Novice
16. juni 2003 - 01:35 #6
!!
Avatar billede themepark Nybegynder
17. juni 2003 - 12:18 #7
Okay...så prøver jeg lige at lege Jørgen Clevin for at forklare spørgsmål 1 :-)

Hvis alt går som det skal, skulle nedenstående gerne forestille et dokument med 3 rammer.

___ ___
|  |  |
| 1 | 2 |
|___|___|
|      |
|  3  |
|      |
|_______|

Det jeg så mener med mit 1. spørgsmål, er, hvis jeg nu gerne vil vide, hvor meget bredden og højden er på det dokument, der er i ramme 3 (eller måske bare rammens højde og bredde...ved ikke om der ville være nogen forskel?), hvordan får jeg så de 2 værdier?
Avatar billede themepark Nybegynder
17. juni 2003 - 12:21 #8
___ ___
|'''|'''|
|'1'|'2'|
|___|___|
|'''''''|
|'''3'''|
|'''''''|
|_______|

Sådan der...så burde det se ordentligt ud nu :-)
Avatar billede themepark Nybegynder
17. juni 2003 - 12:21 #9
Jeg giver op (mht at tegne et ordentligt rammesæt) :-p
Avatar billede roenving Novice
17. juni 2003 - 20:46 #10
Hvis du er i IE kan du hente højde og bredde med scrollHeight og -Width ...
Avatar billede themepark Nybegynder
18. juni 2003 - 10:16 #11
Okay...her er mine resultater med de foreslåede ting.

screen.width og screen.height giver jo højde og bredde på skærmopløsningen, men det jeg skal bruge er højde og bredde på selve dokumentet...eller med andre ord, højden af browseren MINUS taskbar og værktøjslinjer i browseren.

Når jeg prøver med følgende linje:

document.writeln(window.height)

får jeg blot udskrevet undefined.

Prøver jeg med document.body.offsetWidth, får jeg intet udskrevet...med window.innerWidth får jeg undefined (og ja, jeg bruger IE til begge tilfælde selvom det ene er til Netscape...det kunne jo aldrig skade at teste det :-)

document.writeln(window.scrollHeight) giver ligeledes også bare undefined.

Andre forslag?
Avatar billede grunken Nybegynder
18. juni 2003 - 10:27 #12
okay :

innerheigth er netscape, for at bruge offsetwidt, skal elementet være loadet som du kan se det i mit eks. har jeg placeret scriptet neden under den øvrige kode :)

man kan osse lave det som en lille function, der bliver kørt på <body onload="">

-scrollHeight, widt er som roenving skriver ie specifikke!

og syntaxen ser sådan ud

document.body.scrollHeight
document.body.scrollWidth

du kan selvfølgelig osse hente størrelsen på andre frames i en frame

parent.frames['framenavn'].document.body.scrollHeight

og vupti!

Håber det var bedre forklaringe end du har fået ind til videre!
Avatar billede themepark Nybegynder
18. juni 2003 - 10:37 #13
Jeg føler virkelig at jeg har et blondie moment lige nu...

Jeg har lige prøvet at gøre som du siger, og så får jeg udskrevet en scrollHeight på 49.

Det burde det nok ikke være, når jeg har en skærmopløsning på 1024x768, og har et rammesæt med ROWS="50%,50%" med min test side i den nederste ramme.

Og hvad så med at få højden på et dokument der IKKE er i en ramme...altså det med skærmhøjden minus værktøjslinjer osv osv
Avatar billede themepark Nybegynder
18. juni 2003 - 12:22 #14
Det er lykkedes mig gennem en masse søgning samt en masse tests selv at finde ud af det rigtige svar.

Svaret er clientWidth og clientHeight.

Det lykkedes mig ved at søge på MSDN langt om længe at finde ud af at det enten drejede sig om offsetWidth eller clientWidth og ved at lave nogle tests fandt jeg ud af at det var clientWidth.

Da grunken sådan set var tættest på det rigtige svar, får han pointene hvis han ellers lige gider poste noget som et svar ;-)

Og her er for øvrigt et rigtigt godt link omhandlende dimensioner i IE browseren.

http://msdn.microsoft.com/workshop/author/om/measuring.asp
Avatar billede grunken Nybegynder
18. juni 2003 - 13:39 #15
*DOH*, først nu fandt jeg nøjagtigt ud af hvad du ville have :)

min hjerne må være i off-mode som sædvanligt *G*
Avatar billede themepark Nybegynder
18. juni 2003 - 13:41 #16
He he...det skal du ikke være ked af...som sagt har min hjerne været i blondie-mode hele formiddagen :-)

Anyway...der er 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