Avatar billede kaqmak Nybegynder
22. januar 2004 - 16:24 Der er 10 kommentarer

Længde af dokument (Arrrggghhh!

Jeg har efterhånden knoklet en del med at finde ud af hvordan man kan få længden af en side, dvs dens scrolllængde.
Jeg benytter IE6 og har i den forbindelse prøvet document.body.scrollheight, men har her fundet at den blot skriver længden fra det sted i dokumentet den står og op til toppen. Altså skriver jeg:
document.write(document.body.scrollHeight) i starten af siden, skriver den f.eks. 70, selvom at jeg har en milliard linier tekst neden under.
Hvordan kan jeg få den fulde scroll-længden udskrevet i starten af siden?
Avatar billede Slettet bruger
22. januar 2004 - 16:29 #1
Det har formentlig noget at gøre med, at du aflæser højden for tidligt. Prøv at vente, til dokumentet er loadet:

<body onload="alert(document.body.scrollHeight);">
Avatar billede kaqmak Nybegynder
22. januar 2004 - 16:59 #2
Hmm.. Ja nu giver den mig den rigtige længde, men hvordan får jeg dette resultat tilgængelig som en javascript variable inden for mine "body" tags?
Avatar billede smirnoff Nybegynder
22. januar 2004 - 18:50 #3
hvad mener du
Avatar billede kaqmak Nybegynder
22. januar 2004 - 19:09 #4
Som det er nu kan jeg kun få "den rigtige længde" til at poppe op i en alert box. Hvad nu hvis jeg vil f.eks. lave en tabel som skal benytte dette tal. F.eks.
<table height=DenRigtigeLaengde/2>....
Hvordan får jeg gemt længden ind i "DenRigtigeLaengde"?
Avatar billede lklingenberg Nybegynder
22. januar 2004 - 20:56 #5
Se i øvrigt her: http://www.eksperten.dk/spm/454172. Jeg har lidt det samme problem (men det er dog løst i IE).
Avatar billede smirnoff Nybegynder
22. januar 2004 - 21:04 #6
hvad med :

<script type="text/javascript">
    var h = 0;

    function init() {
          h = parseInt(document.body.scollheight);
          document.getElementById("tabel").style.height = h + "px";
    }
</script>
..
<body onload="init();">
...

<table id="tabel">...

- lavet ud af hovedet og har ikke testet det :)
Avatar billede lklingenberg Nybegynder
22. januar 2004 - 22:22 #7
aha - nu sker der noget.

Fandt denne artikel:
http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/index.html

...og legede lidt:
http://lknet.dk/test/12/

Sp enten kan man teste for browser og anvende body eller documentElemet eller også kan man simpelthen teste for den højeste værdi og så anvende den. Det ser dog ud til at Opera stadig har lidt problemer. øv!
Avatar billede smirnoff Nybegynder
22. januar 2004 - 22:54 #8
yeah
Avatar billede lklingenberg Nybegynder
23. januar 2004 - 02:35 #9
Nedenstående virker i IE, NS, Mozilla, Firebird, K-Meleon og Avant men ikke i Opera. Nuvel, spørgsmålet gik på IE og smirnoff brugte korrekt document.body.scrollHeight  til IE.

<script type="text/javascript">
window.onload = function() {
  var b1 = document.documentElement.offsetHeight;
  var b2 = document.body.offsetHeight;
  var trueHeight = (b1>b2)?b1:b2;
  document.getElementById("myTable").style.height = trueHeight+"px";
}
window.onresize = window.onload;
</script>
Avatar billede lklingenberg Nybegynder
26. februar 2004 - 14:26 #10
kagmak?
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