Avatar billede mulemule Nybegynder
12. september 2006 - 14:14 Der er 17 kommentarer og
2 løsninger

window.innerHeight i internet explorer 5.5

Hvordan kan jeg finde ud af hvad der er den indre højde på et vindue jeg har åbnet.

I firefox gør jeg sådan her:
window.innerHeight

I ie 6.0
window.document.documentElement.clientHeight

Men hvordan gør man det på en måde som virker til IE 5.5 ?
Avatar billede olebole Juniormester
12. september 2006 - 14:26 #1
<ole>

Afhængig af resten af din kode kunne det være:
    document.body.clientHeight

/mvh
</bole>
Avatar billede roenving Novice
12. september 2006 - 16:16 #2
Og et udtryk kunne være:

var windowHeight = window.innerHeight ? window.innerHeight : window.document.documentElement ? window.document.documentElement.clientHeight : document.body.clientHeight
Avatar billede mulemule Nybegynder
13. september 2006 - 11:37 #3
Tak. Det virker.
Avatar billede olebole Juniormester
13. september 2006 - 11:45 #4
Njaahh, roenving ... den virker nu ikke helt korrekt. Der kan godt være et dokument-element præsent, selvom det er body-elementet, der skal måles på.
Det afhænger bl.a. af, om browseren er i quirks-mode eller ej - og om den evt. hedder noget med 'Opera  ´;o)
Avatar billede mclemens Nybegynder
16. september 2006 - 21:35 #5
Offtopic, Rønving og Ole ->
http://www.eksperten.dk/spm/682569
Kaster I evt. et svar ?

Undskyld offtopic ...
Avatar billede roenving Novice
19. september 2006 - 14:21 #6
-- det med quirks-mode styrer man jo selv, så den generelle anbefaling om at bruge en fuldt kvalificeret doctype skal så med her også:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

...

-- allerførst i html-filen !-)

-- og ole, hvornår er det at den norske browser giver problemer ?-)
Avatar billede mclemens Nybegynder
25. september 2006 - 02:46 #7
Hvad med denne her ?



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

var w = (t=document.documentElement.clientWidth)? t : (t=document.body.clientWidth)? t : window.innerWidth;

var h = (t=document.documentElement.clientHeight)? t : (t=document.body.clientHeight)? t : window.innerHeight;

alert("Bredde: "+w+"\n"+"Højde: "+h);

</script></head><body>
</body></html>
Avatar billede mclemens Nybegynder
25. september 2006 - 02:48 #8
Eller rettere hvad er problemet
med Rønving kode i OP... Ole ?
Avatar billede mclemens Nybegynder
25. september 2006 - 02:58 #9
Nåh, det tog jo kun et par minutter...

Rønving, højden ligger i OP på body
(da jeg testede i op 9.01) så jeg vil skyde på denne her:
(den virker hos mig i OP, NS, FF, IE med og uden quirks)


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

var op=(navigator.userAgent.indexOf('Opera')!=-1);

window.onload=function(){

var w = ((t=document.documentElement.clientWidth)&&(!op))? t : (t=document.body.clientWidth)? t : window.innerWidth;

var h = ((t=document.documentElement.clientHeight)&&(!op))? t : (t=document.body.clientHeight)? t : window.innerHeight;

alert("Bredde: "+w+"\n"+"Højde: "+h);

}
</script></head><body>
</body></html>
Avatar billede mclemens Nybegynder
25. september 2006 - 04:14 #10
Selvom ovenstående virker så resulterede
en lille piller resulterede i:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

window.onload=function(){

w1=(parseInt(t=document.documentElement.clientWidth))?t:0;
w2=(parseInt(t=document.body.clientWidth))?t:0;
w3=(parseInt(t=window.innerWidth))?t:0;

h1=(parseInt(t=document.documentElement.clientHeight))?t:0;
h2=(parseInt(t=document.body.clientHeight))?t:0;
h3=(parseInt(t=window.innerHeight))?t:0;

w=Math.max(w1,Math.max(w2,w3));
h=Math.max(h1,Math.max(h2,h3));

alert("Bredde: "+w+"\n"+"Højde: "+h);

}
</script></head><body>
</body></html>



... så var vi fri for at checke på op ...

- Det måtte jo kunne gøre kompakt så:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

window.onload=function(){

var r={e:{0:document.documentElement,1:document.body,2:window},
  w:{w:"Width",h:"Height"},c:{},r2:["client","client","inner"]};
for(i in r.w)for(j in r.e)r.c[i+j]=(parseInt(t=(r.e[j][r.r2[j]+r.w[i]])))?t:0

w=Math.max(r.c.w0,Math.max(r.c.w1,r.c.w2));
h=Math.max(r.c.h0,Math.max(r.c.h1,r.c.h2));

alert("Bredde: "+w+"\n"+"Højde: "+h);

}
</script></head><body>
</body></html>


...

...

Rønving, kast et svar for en deler ;)
Avatar billede mclemens Nybegynder
25. september 2006 - 08:45 #11
Det var rart at få sovet lidt :)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

window.onload=function(){
  w=cwh("Height");  h=cwh("Width");
  alert("Bredde: "+w+"\n"+"Højde: "+h);
}

function cwh(e){
  var a=[];for(i=1;i<4;i++){d=document;c=(i<3)?"client"+e:"inner"+e;
    e=(i<2)?d.documentElement[c]:(i<3)?d.body[c]:window[c];
    a[i-1]=(t=parseInt(e))?t:0;
  }
  return Math.max(a[0],Math.max(a[1],a[2]));
}

</script></head><body>
</body></html>
Avatar billede mclemens Nybegynder
25. september 2006 - 08:58 #12
Det var to sekunder for tidligt ... Denne her samt 25/09-2006 04:14:09
og 25/09-2006 02:58:42 virker OP, NS, FF og IE med uden quirks.




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

window.onload=function(){

  w=cwh("Height");
  h=cwh("Width");

  alert("Bredde: "+w+"\n"+"Højde: "+h);

}

function cwh(e){
  var a=[];for(i=1;i<4;i++){d=document;c=(i<3)?"client"+e:"inner"+e;
    f=(i<2)?d.documentElement[c]:(i<3)?d.body[c]:window[c];
    a[i-1]=(t=parseInt(f))?t:0;
  }
  return Math.max(a[0],Math.max(a[1],a[2]));
}

</script></head><body>
</body></html>


Rønving kast et svar for en deler :)

Og Ole kast evt. et også for [ Der kan godt være et dokument-element præsent, selvom det er body-elementet, ... om den evt. hedder noget med 'Opera  ´;o) ] :)
Avatar billede mulemule Nybegynder
25. september 2006 - 11:49 #13
Det jeg laver skal ikke virke til opera, husk at svar i svar for point.
Avatar billede roenving Novice
26. september 2006 - 12:03 #14
Oki '-)
Avatar billede mclemens Nybegynder
28. september 2006 - 03:21 #15
Tak for point :)
... Umiddelbart har jeg fået testet koden til noget lir jeg selv ville lave, men da dokumentet kom over selve winduets højde kiksede det i FF ... så jeg vil anbefales
25/09-2006 02:58:42 og hvis Opera ikke er nødvendigt som du siger så 25/09-2006 02:46:23
Avatar billede mulemule Nybegynder
28. september 2006 - 10:18 #16
OK. Tak
Avatar billede mulemule Nybegynder
28. september 2006 - 10:21 #17
Jeg har selv stykket dem her sammen i mellemtiden: Kan ikke så godt lide at bruge det der "var h = (blala) ? tal: tal. Har aldrig rigtigt fattet det. Prøv ikke at froklare det, fordi jeg kunne jo let fatte det hvis jeg ville, har bare valgt at droppe det :) .

Men dem ved jeg virker uden problemer ihvertfald til IE + Firefox + Safari.

function getWinWidth()
{
    if( typeof( window.innerWidth ) == 'number' )
  {
      return window.innerWidth;
  }
  if (document.documentElement && document.documentElement.clientWidth)
  {
      return document.documentElement.clientWidth;
  }
  if (document.body && document.body.clientWidth)
  {
      return document.body.clientWidth;
  }
  alert("getWinWidth fejl !");
}
 


function getWinHeight()
{
  if( typeof( window.innerHeight ) == 'number' )
  {
      return window.innerHeight;
  }
 
  if (document.documentElement && document.documentElement.clientHeight)
  {
      return document.documentElement.clientHeight;
  }
  if (document.body && document.body.clientHeight)
  {
      return document.body.clientHeight;
  }
  alert("getWinHeight fejl !");
}
Avatar billede mulemule Nybegynder
28. september 2006 - 10:22 #18
De virker også med forskellige doctype indstillinger. Det skal man også være obs på.
Avatar billede roenving Novice
28. september 2006 - 10:58 #19
-- jamen tak for 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