Opera - Layerhöhe auslesen
René Raillon
- dhtml
0 Joachim
Hallo Leute,
ich suche eine Möglichkeit, die Höhe eines Layers in Opera auszulesen. Jedoch wird der Layer dynamisch gefüllt (mittels PHP), so dass ich die Layerhöhe vorher nicht definiere, sondern zur "Laufzeit" auslesen möchte.
Im IE funktioniert es so:
document.all[id].clientHeight;
In Netscape derart:
document.layers[id].clip.height;
Aber wie kann ich darauf mit Opera zugreifen? Hilfe wäre fein.
Greets
René
hi,
clip.height ist eigentlich die Hoehe des geclippten Bereiches.
Versuche mal diese "divHoch()". Die Div-hoehe setze ich fuer dom zuvor auf auto,
andernfalls gibt Mozilla/NC die moeglicherweise feste Hoehe in den CSS-Angaben zurueck.
IE4 hat uebrigens einen bug: steht im CSS "auto" liefert er Muell, Abhilfe schafft
eine vorgegebene feste Hoehe.
Bin nicht ganz sicher, aber Opera sollte offsetHeight auch koennen.
hth und Gruss Joachim
// some known objects
var nc = !!(document.captureEvents && !document.getElementById);
var ie4 = !!(document.all && !document.documentElement);
var dom = !!document.getElementById;
// einfache div-layer referenzieren
function dRef(num) {return (nc? document.layers[num] : (ie4? document.all[num] : document.getElementById(num)))}
//Div-Hoehe
function divHoch(obj) {
if(dom) obj.style.height = "auto"; // fuer NC 6 heigt auf auto setzen
if(nc) return obj.document.height;
if(ie4 || dom) return obj.offsetHeight;
}
alert(divHoch(dRef('DIVID')));