JavaScript: tatsächlichen Browserplatz ermitteln

andralin

Erfahrenes Mitglied
Hallo Leute,

ich bin mir sicher das so was in der Art irgendwo im Netz schon mal gepostet wurde. Finde mich aber nicht zurecht.

Ich brauche eine JavaScript Methode, die mir nicht die System-Auflösung oder breite des Browserfenster gibt, sondern eine die mir die innere Breite des Browsers, vom Linken Rand bis zum rechten Rand abzüglich des tatsächlichen Scrollbalkens hergibt.

So das ich dann Bildschirmfüllend eine Grafik mit genau diesem Wert an Breite einsetzen kann, so das ich rchts einen Scrollbalken erhalte, nicht aber unten.

Wer weis da einen Trick der auf allen Browsern funktioniert?

cu s00n
Andralin
 
Hi,

zu Ermittlung der Breite des Anzeigebereichs im Browserfenster gibt es die window.innerWidth-Eigenschaft.

Der vertikale Scrollbalken wird hierbei aber nicht "subtrahiert", da er "Bestandteil" des Viewports ist, und zudem in den einzelnen Browsertypen unterschiedlich breit ausfällt.
 
Hi,

zu Ermittlung der Breite des Anzeigebereichs im Browserfenster gibt es die window.innerWidth-Eigenschaft.

Der vertikale Scrollbalken wird hierbei aber nicht "subtrahiert", da er "Bestandteil" des Viewports ist, und zudem in den einzelnen Browsertypen unterschiedlich breit ausfällt.

ich hab natürlich auch weiter rumexperimentiert und im I-NET recherchiert.

PHP:
function loader()
{
   window.location="MainScript.php?screenWidth=" + document.body.offsetWidth;
}
</script>

was ist hier der Unterschied zu Window.InnerWidth
und wie kann ich die Breite des Scrollbalkens errechnen?
 
Hi,

wie Maik schon angemerkt hat, ist die Bildlaufleiste in den unterschiedlichen Browsern unterschiedlich breit. Eine Eigenschaft, diese auszulesen, ist mir nicht bekannt.

innerWidth gibt die Breite des Viewports an - inklusive der Bildlaufleiste. Allerdings wird die Eigenschaft nicht vom IE unterstützt.

Für den IE kannst du die Eigenschaft clientWidth des Dokumentenkörpers verwenden. Hier gibt es jedoch zweierlei zu beachten.
  1. Der Dokumentenkörper wird je nach Dokumententyp durch verschiedene Objekte repräsentiert (body bzw. documentElement).
  2. Da zum Ermitteln der Breite der Dokumentenkörper benötigt wird, kann diese erst nach dem Laden des Dokuments berechnet werden (z.B. im onload-Event).
Beim IE gehört die Bildlaufleiste nicht zum Viewport. Der Rückgabewert ist also der Nettowert ohne Scrollbar.

Beispiel zum Ermitteln der inneren Breite:
Code:
window.onload = function(){
  if(window.innerWidth){
    intInnerWidth = window.innerWidth;
  }else{
    var objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
    intInnerWidth = objBody.clientWidth;
  }
  alert(intInnerWidth);
}
Vielleicht hilft dir das weiter.

Ciao
Quaese
 
Danke für die HIlfe, das ist erst mal Aufschlussreich. Aber trotzdem brauche ich irgendwie die BrowserBreite % Scrollbalken. Überlege schon ob ich ein ActiveX schreiben soll, aber denke mal das wird ähnlich schwer, wenn die BrowserEntwickler den ScrollBalken nicht als public und nicht als eigenständiges Objekt sehen.

Wie dem auch sei, falls doch wer noch ne Idee hat wie man den tatsächlichen Platz innerhalb des Browsers ermitteln kann, freu ich mich über weitere Posts...
 

Neue Beiträge

Zurück