was bedeutet clientWidth
Alain
- javascript
0 Cochrane0 Cybaer
0 Gernot Back
Hallo,
ich bin da grade an einem script studieren bzw. analysieren und habe den eintrag
var ww=(IE||DOM)? document.body.clientWidth : window.innerWidth;
var x=(ww-barwidth)/2;
gesehen.
Eine frage dazu,was genau bedeutet body.clientWidth?
window.innerWidth habe ich in selfhtml gesehen, es soll den opera und NS4 unterstützten so wie ich das verstanden habe.
Dann bin ich noch irgendwo auf "innerHTML" gestossen,was bedeutet das im vergleich zu window.innerWidth ? hat das eigentlich überhaubt was mit einenander zu tun?
Grüsse
Alain
Dann bin ich noch irgendwo auf "innerHTML" gestossen,was bedeutet das im vergleich zu window.innerWidth ? hat das eigentlich überhaubt was mit einenander zu tun?
Hallo,
ehrlich gesagt kann ich bei clientWidth auch nur raten, aber es scheint hier ja offensichtlich die innere Höhe des Dokuments zu bestimmen.
innerHTML ist aber etwas ganz anderes. Es ermöglicht den Zugriff auf den Text innerhalb eines Elements, komplett, inklusive aller Tags, so wie sie im Quellcode stehen. Leider nicht offizieller DOM-Standard, aber jeder Browser unterstützt es und es ist sehr bequem, um irgendwo den Inhalt eines Elements auszulesen oder zu setzen.
Hi,
Leider nicht offizieller DOM-Standard, aber jeder Browser unterstützt es
Jeder DOM-Level-2-Browser.
Gruß, Cybaer
Hallo Alain,
neben document.body.clientWidth und ~Height gibt es ja auch noch document.body.offsetWidth und ~Height. Gib doch mal spaßeshalber mal Folgendes in die Adresszeile verschiedener Browser ein:
javascript:alert(document.body.offsetWidth-document.body.clientWidth)
Handelt es sich dabei um ein Frameset oder ein Dokument ohne Scrollbalken, kommt da im IE die Zahl 4 heraus. Ist es kein Frameset und eine Seite mit Scrollbar, kommt 17 heraus.
Der Rahmen eines Fensters scheint also im IE rundherum 2 Pixel breit zu sein, für die Scrollleiste kommen ggf noch 13 Pixel hinzu.
In Opera 7.54 (getestet unter Win 98)kommt bei obiger Eingabe immer 0 heraus. Ob beide Werte jetzt dort die innere oder die äußere Weite des Fensters oder vielleicht noch etwas ganz anderes bezeichnen, kann ich nicht sagen.
Die Mozilla-Derivate verhalten sich je nach Seite bei obiger Eingabe vollkommen unberechenbar.
Gruß Gernot
Hallo Gernot,
neben document.body.clientWidth und ~Height gibt es ja auch noch document.body.offsetWidth und ~Height. Gib doch mal spaßeshalber mal Folgendes in die Adresszeile verschiedener Browser ein:
gute idee(mit der Adresszeile),damit lernt man javascript verstehen ;-)
demnach bedeutet body.clientWidth die aktuelle breite in pixel vom jeweiligen client und offsetWidth die breite in pixel des monitors.
In Opera 7.54 (getestet unter Win 98)kommt bei obiger Eingabe immer 0 heraus. Ob beide Werte jetzt dort die innere oder die äußere Weite des Fensters oder vielleicht noch etwas ganz anderes bezeichnen, kann ich nicht sagen.
so wie ich gelesen habe soll der opera window.innerWidth unterstützen,ob das der grund für 0 ist,weiss ich nicht.
Die Mozilla-Derivate verhalten sich je nach Seite bei obiger Eingabe vollkommen unberechenbar.
wie meinst Du das? -> ^^
Grüsse
Alain
Hallo Alain,
demnach bedeutet body.clientWidth die aktuelle breite in pixel vom jeweiligen client und offsetWidth die breite in pixel des monitors.
Nein letzteres ist glaube ich screen.width. Du kannst aber auch noch document.body.scrollHeight und ~Width in Erwägung ziehen, die aber vom IE, wenn ich mich recht entsinne, nur im Nicht-Quirks-Modus auszulesen sind.
Die Mozilla-Derivate verhalten sich je nach Seite bei obiger Eingabe vollkommen unberechenbar.
wie meinst Du das? -> ^^
Das meine ich so, dass bei Mozilla&Co meist einer der beiden Werte fälschlicherweise als 0 ausgegeben wird, der andere aber nicht, wobei ich noch nicht durchschaut habe, wovon es abhängt welcher jetzt auf Null steht ~Width oder ~Height. Auch hier spielt die Dokumenttyp-deklaration mglicherweise eine Rolle (DTD).
Diese Vielfalt an Werten, die je nach Bowser und Dokumenttyp immer etwas anderes heißen, ist wirklich ziemlich unübersichtlich.
Gruß Gernot
Hi,
Handelt es sich dabei um ein Frameset oder ein Dokument ohne Scrollbalken, kommt da im IE die Zahl 4 heraus. Ist es kein Frameset und eine Seite mit Scrollbar, kommt 17 heraus.
Mein IE liefert mit oder ohne Scrollbar 0.
Der Rahmen eines Fensters scheint also im IE rundherum 2 Pixel breit zu sein, für die Scrollleiste kommen ggf noch 13 Pixel hinzu.
Die Breite der Scrollleiste kann unterschiedlich sein - läßt sich in den Einstellungen des Desktop (Rechtsklick auf Freie Stelle, Einstellungen, dann den Tab mit den ganzen Einstellungen für Fensterfarben usw.) ändern.
Bei mir immer 0.
cu,
Andreas