Avatar billede fidusen Nybegynder
04. juli 2002 - 00:53 Der er 19 kommentarer og
1 løsning

Vindues ydre dimensioner

Hej eksperter!
Hvordan finder man et vindues ydre dimensioner (uden at ændre størrelsen på det)? (Gerne x-browser løsning)
- FiDuSeN -
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 00:59 #1
window.outerWidth
window.outerHeight
Avatar billede fidusen Nybegynder
04. juli 2002 - 01:01 #2
Virker ikke i IE 5.5...
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 01:01 #3
svar da :)

<head>
<script>
function DeterDetIndreDerTaellerDu(){
alert(window.outerWidth+' '+window.outerHeight)
}
</script>
</head>

<body onload="DeterDetIndreDerTaellerDu()">
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 01:03 #4
hov sorry -

window.outerWidth // ns
window.outerHeight // ns

document.body.clientHeight // ie
document.body.clientWidth // ie
Avatar billede fidusen Nybegynder
04. juli 2002 - 01:04 #5
Virker ikke i IE 5.5...
output: "undefined undefined"
Avatar billede fidusen Nybegynder
04. juli 2002 - 01:05 #6
clientWidth og clientHeight giver de indre dimensioner...
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 01:09 #7
Sorry, min fejl.

Gør sådan her :

<html>
<head>
<script language="javascript">   
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
ie5 =(document.getElementById)? true:false
ns6 = (document.getElementById && !document.all)?true:false;

function DeterDetIndreDerTaellerDu(){
if(ns4||ns6){
hojde = window.outerHeight;
bredde = window.outerWidth
}else if(ie4||ie5){
hojde = document.body.offsetHeight
bredde = document.body.offsetWidth
    }
    alert (hojde + " " + bredde)
}
</script>
</head>

<body onload="DeterDetIndreDerTaellerDu()">


</body>
</html>
Avatar billede fidusen Nybegynder
04. juli 2002 - 01:15 #8
Det ser ellers fint ud, men document.body.offsetWidth og -height giver desværre ikke vinduets ydre dimensioner i min IE 5.5... =)
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 01:16 #9
Hmmmm.... det burde det nu. Hos mig siger den fint 1280 i bredden og lidt mindre i højden, da processlinien trækkes fra.
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 01:18 #10
og alle knapper for oven regnes heller ikke for en del af vinduet og trækker også fra i højden...
Avatar billede fidusen Nybegynder
04. juli 2002 - 01:22 #11
Den skal regne det hele med. Det skal svare til vinduets aller yderste mål...

Testscript

function testWin(){
window.resizeTo(800,600)
alert(document.body.offsetWidth + "x" + document.body.offsetHeight)
}

Dette lille script skulle gerne give "800x600", men det gør det ikke.
Hvad skal offsetWidth og -Height erstattes med for at det virker?
Avatar billede fidusen Nybegynder
04. juli 2002 - 01:34 #12
Jeg har lavet en anden løsning, men den resizer vinduet for at finde de ydre mål...
Det ser sådan ud:

<HTML>
<HEAD>
<SCRIPT type="text/javascript">

function findWIandWO(){
// if IE
  findDifferenceIE();
  window.resizeTo(543,432);
  WIW = document.body.clientWidth;
  WIH = document.body.clientHeight;
  WOW = WIW + difW;
  WOH = WIH + difH;
alert("Vinduets ydre dimensioner: " + WOW + "x" + WOH);
}

function findDifferenceIE(){
window.resizeTo(640,480);
difW = 640 - document.body.clientWidth;
difH = 480 - document.body.clientHeight;
// alert("Difference: w " + difW + " ; h " + difH);
}

</SCRIPT>
</HEAD>
<BODY onload="findWIandWO()">

</BODY>
</HTML>
Avatar billede fidusen Nybegynder
04. juli 2002 - 03:12 #13
Jeg har selv fremstillet en løsning til IE:

<HTML>
<HEAD>
<TITLE>JavaScript - Vinduets dimensioner (IE)</TITLE>
<SCRIPT type="text/javascript">
<!--[http://www.eksperten.dk/spm/232212]

function getWindowDimensions(){
WIW = document.body.clientWidth;
WIH = document.body.clientHeight;
window.resizeTo(640,480);
difW = 640 - document.body.clientWidth;
difH = 480 - document.body.clientHeight;
WOW = WIW + difW;
WOH = WIH + difH;
window.resizeTo(WOW,WOH);
alert("Vinduets dimensioner... \n- Ydre: " + WOW + "x" + WOH + "\n- Indre: " + WIW + "x" + WIH);
}

//-->
</SCRIPT>
</HEAD>
<BODY>

<H1>Vinduets dimensioner (IE)</H1>
<P>Hiv lidt i vinduet og tjek så dets ydre dimensioner ved at trykke på knappen...</P>
<INPUT type="button" value="Vinduets dimensioner" onclick="getWindowDimensions();"><BR>

</BODY>
</HTML>

I NN kan man finde dimensionerne ved
WOW = window.outerWidth;
WOH = window.outerHeight;
WIW = window.innerWidth;
WIH = window.innerHeight;

Man kunne godt slå det sammen til en x-browser funktion, men jeg skal jo også sove.

Jeg kunne godt tænke mig at vide om funktionen virker i ie4 og ns6, så hvis der er nogle der kan teste dette, ville det være lækkert.
Avatar billede fidusen Nybegynder
04. juli 2002 - 03:17 #14
"Man kunne godt slå det sammen til en x-browser funktion, men jeg skal jo også sove."
>> Hmmm... Jeg slog vist et par sætninger sammen eller noget. Jeg må hellere gå i seng inden jeg kludrer mere i den. Godnat.
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 04:31 #15
JEG TESTER DET AF NÅR JEG OGSÅ HAR FÅET SOVET LIDT :)
Avatar billede nikolajdu Nybegynder
04. juli 2002 - 04:31 #16
damn cabs lock
Avatar billede fidusen Nybegynder
05. juli 2002 - 16:39 #17
Her er min egen cross-browser løsning.
Hvis nogen har rettelser til den, så skriv en kommentar til dette spm og jeg vil sætte nogle ekstra point af (også selvom jeg har lukket spm'et).

<HTML>
<HEAD>
<TITLE>JavaScript - Vinduets dimensioner (X-browser)</TITLE>
<SCRIPT type="text/javascript">
<!--[http://www.eksperten.dk/spm/232212]

function getWindowDimensions(){
  ns4 = (document.layers)? true:false;
  ie4 = (document.all)? true:false;
  ie5 =(document.getElementById)? true:false;
  ns6 = (document.getElementById && !document.all)? true:false;
if (ie4||ie5) {
  WIW = document.body.clientWidth;
  WIH = document.body.clientHeight;
  window.resizeTo(640,480);
  difW = 640 - document.body.clientWidth;
  difH = 480 - document.body.clientHeight;
  WOW = WIW + difW;
  WOH = WIH + difH;
  window.resizeTo(WOW,WOH);
} else if (ns4||ns6) {
  WOW = window.outerWidth;
  WOH = window.outerHeight;
  WIW = window.innerWidth;
  WIH = window.innerHeight;
  difW = WOW - WIW;
  difH = WOH - WIH;
}
alert("Vinduets dimensioner... \n- Ydre: " + WOW + "x" + WOH + "\n- Indre: " + WIW + "x" + WIH);
}

//-->
</SCRIPT>
</HEAD>
<BODY>

<H1>Vinduets dimensioner (X-browser)</H1>
<P>Hiv lidt i vinduet og tjek så dets ydre dimensioner ved at trykke på knappen...</P>
<INPUT type="button" value="Vinduets dimensioner" onclick="getWindowDimensions();"><BR>

</BODY>
</HTML>

- FiDuSeN -
Avatar billede fidusen Nybegynder
05. juli 2002 - 16:43 #18
PS: Replace(femtesidste linie,"dets ydre dimensioner","dets dimensioner")
Avatar billede nikolajdu Nybegynder
06. juli 2002 - 13:54 #19
Jamen det er jo forrygende - Hjælper dig på vej i timevis for til sidst at blive afvist. Sådan er livet jo så finurligt....
Avatar billede fidusen Nybegynder
06. juli 2002 - 14:00 #20
Jeg havde jo allerede prøvet alle dine forslag. Men jeg skulle måske give dig lidt point fordi jeg brugte din browser-detektion. Jeg håber du overlever... =)
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