Christian Seiler: Höhe und Breite eines Frames auslesen

Beitrag lesen

Hallo Stefan,

Kommt darauf an, wo das JavaScript ausgeführt wird. Zuerst musst Du das Frame-Objekt korrekt referenzieren, dazu liest Du Dir am besten http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/index.htm durch.

Wenn Du das Frame-Objekt hast, kannst Du dann auf die jeweiligen Eigenschaften zugreifen. Nehmen wir mal Du willst das aktuelle Frame (self) nutzen - bei anderen Frames nimmst Du natürlich etwas anderes (siehe o.g. Artikel). Dann kannst Du Höhe / Breite so bestimmen:

// damit der code möglichst wenig geändert werden muss  
// wird hier am anfang der variable meinframe der richtige  
// frame zugewiesen (hier: self)  
// denkbar ist auch z.B.: var meinframe = parent.frames['bla']; o.ä.  
var meinframe = self;  
var hoehe = -1;  
var breite = -1;  
  
if (meinframe.innerWidth) {  
  // 1. methode: alle browser, die nicht IE sind  
  breite = meinframe.innerWidth;  
  hoehe = meinframe.innerHeight;  
} else if (meinframe.document && meinframe.document.body &&  
           meinframe.document.body.innerWidth) {  
  // 2. methode: Sonderbehandlung für den IE  
  breite = meinframe.document.body.offsetWidth;  
  hoehe = meinframe.document.body.offsetHeight;  
}  
  
// jetzt steht in hoehe die Höhe und breite die Breite  
// allerdings kann auch -1 drinstehen, wenn diese nicht  
// feststellbar sind

Nur noch als Hinweis: Die Methode für den Internet Explorer (document.body.offsetWidth auf das Frame-Objekt anwenden) liefert nur dann exakte ergebnisse, wenn im jeweiligen Frame die margin per CSS für body auf 0 gesetzt ist, sonst musst Du die margin noch 2x draufrechnen.

Viele Grüße,
Christian