René Raillon: Opera - Layerhöhe auslesen

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é

  1. 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')));