Grootte van scherm

Status
Niet open voor verdere reacties.

rodojo

Gebruiker
Lid geworden
17 mrt 2008
Berichten
110
Hallo,

Is het mogelijk om met Javascript te kunnen maken dat je de gegevens kan zien hoe breed en hoe hoog het scherm is? Ik bedoel dus niet wat de scherm grootte is, maar hoe groot het internet scherm is.
 
Ben je hier iets mee? Het script toont de afmetingen van het venster ZONDER de titelbalk, menubalk, knoppenbalk, randen...
HTML:
<html>
  <head>
    <script type="text/javascript">
      function toonafmetingen(){
        var h=document.body.offsetHeight;
        var w=document.body.offsetWidth;
        alert("Hoogte: "+h+"\nBreedte: "+w);
      }
    </script>
  </head>
  <body>
    <input type="button" value="toon afmetingen" onclick="toonafmetingen();">
  </body>
</html>
Edit: ik merk net dat de code in FF totaal anders reageert dan in IE :confused:
 
Laatst bewerkt:
Dat komt omdat de body maar zo hoog is als hij gevuld is. Internet Explorer liegt dus eigenlijk.

Wat je nodig hebt is window.innerHeight en window.innerWidth. Helaas ondersteund IE dit niet, maar aangezien IE die waarde doorgeeft in document.body.offetHeight (wat dus fout is) kan het toch op deze manier (getest in FF en IE):

Code:
<!doctype html public '-//w3c//dtd html 4.01 transitional//en'>
<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
      function toonafmetingen()
      {
        var h = window.innerHeight ? window.innerHeight : document.body.offsetHeight;
        var w = window.innerWidth ? window.innerWidth : document.body.offsetWidth;
        alert("Hoogte: "+h+"\nBreedte: "+w);
      }
    </script>
    <input type="button" value="toon afmetingen" onclick="toonafmetingen();">
  </body>
</html>
 
Mooi, het werkt inderdaad prima in beide browsers :thumb:

Ik vind het altijd zo verschrikkelijk balen als de verschillende browsers anders reageren :evil: Een normaal mens vraagt zich op den duur af wat het nut van het W3C is :confused:
 
Het W3C is er om ons erop te wijzen dat Internet Explorer zich compleet fout gedraagt :D

Overigens zijn er geen regels voor window.innerHeight. Het komt niet voor in de DOM specificaties van het W3C, dus hier valt IE alleen te verwijten dat ze niet de meest logische oplossing hebben gekozen.

element.offsetHeight is ook geen onderdeel van de W3C specificaties. Vanuit het W3C standpunt gezien is het ook niet nodig aangezien alles door CSS wordt bepaald, en daar is de grootte van een element wel gedefinieerd. Maar helaas klopt de waarde vaak om verschillende redenen niet met de werkelijkheid. Daarnaast kun je in Firefox en IE alleen de waarde van een CSS attribuut lezen als het expliciet met javascript of het style attribuut van het element is gedefinieerd. Als het bijvoorbeeld via een extern CSS bestand geregeld is kun je de waarde niet lezen via de DOM.

Het zijn dus allemaal manieren om er toch nog het beste van te maken, maar het is geen onderdeel van de W3C DOM.
 
Laatst bewerkt:
Jah, dit is wat ik nodig heb, dank je! :thumb:

EDIT:
(HOEFT NIET MEER!!)
Alleen hoe kan je dus maken dat je bijvoorbeeld een tekstje te zien krijgt als je bijvoorbeeld de hoogte 500 en de breedte 500 is?
 
Laatst bewerkt:
Je wilt een tekst laten zien als het oppervlakte van het scherm 500 bij 500 is?

Dat klinkt een beetje als een vreemd criterium om tekst te laten zien. Wat wil je precies bereiken?
 
(HOEFT NIET MEER!!)
Dat is eingelijk niet mijn bedoeling, maar wat ik opnoemde was een voorbeeld. Wat ik precies wil is dat iemand niet zomaar in mijn bron kan kijken.
 
Laatst bewerkt:
(HOEFT NIET MEER!!)
Dat is eingelijk niet mijn bedoeling, maar wat ik opnoemde was een voorbeeld. Wat ik precies wil is dat iemand niet zomaar in mijn bron kan kijken.

Dat zal niet lukken. Javascript is een client-side script... :/
Wat je wél kan proberen, is je script compressen op http://www.javascriptcompressor.com. Dat maakt dat de user het script wel nog kan zien, maar het is praktisch onleesbaar geworden =))
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan