snorri: Fenstergröße vor laden des Dokuments bestimmen

Hej,

ich habe ein Problem, das ich im Netscape leicht lösen kann, im IE finde ich aber keinen Weg, vielleicht weiss hier wieder jemand einen Trick.

Ich möchte in eine Seite ein <div> einbauen, das eigene Scrollbars besitzt (style="overflow:scroll"). Allerdings soll dieses Div den Platz im Browserfenster sinnvoll nutzen, also bei großen Auflösungen groß sein, bei kleinen klein. Relative Größenangaben (style="height:60%") funktionieren aber hier leider nicht, da sie sich auf das Div selbst beziehen und nicht auf die Fenstergröße.

Nun kann ich im Netscape problemlos am Anfang der Seite window.innerHeight und window.innerWidth abfragen und das Div dann per JavaScript dynamisch vergrößern. Im Internet Explorer komme ich aber an die Größe des Anzeigebereichs nur, indem ich die Eigenschaften des <body>-Tags abfrage (offsetHeight) -- wofür aber die ganze Seite erst einmal geladen sein muss. Die Folge ist, dass Besucher immer zuerst mal ein kleines Div sehen, dass dann erst nach Laden der kompletten Seite per onLoad auf die richtige Größe eingestellt wird.

Das gefällt mir nicht. Geht das nicht besser?

-- snorri

  1. Moin!

    Das gefällt mir nicht. Geht das nicht besser?

    Vermutlich wird es keine Lösung geben, die Dir wirklich besser gefällt.
    Eine wäre es übrigens die auf die Seite verweisnden Links schon mit Größenangaben auszustatten und die Größe des Divs serverseitig festzulegen oder irgendwas in ein Sitzungs-Cookie einzutragen und auszuwerten.

    Das alles geht aber nur aktiviertem JS...

    Überprüfe mal, warum die relative Größenangabe nicht funktioniert. Vielleicht kannst Du an _der_ Stelle was ändern.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Hej fastix!

      Du hast schon recht, das MÜSSTE eigentlich gehen. Ich habe es mal ausprobiert: unter normalen Umständen geht es auch. Aber sobald ich das Div in eine Tabellenzelle stecke, geht es nicht mehr.

      Ah, Moment: Wenn die Tabelle AUCH eine Höhenangabe bekommt, dann geht es wieder ... das ist interessant, das muss ich mal weiter verfolgen.

      Danke für die Inspiration! :-)

      -- snorri

      1. Heh ... das war auch nix. In Kombination mit dem Overflow-Attribut schneidet er mir jetzt nämlich den Scrollbar mit ab >:-(

        *grummelscheissIEgrummel*

        -- snorri

  2. Hallo,

    auf http://physik.uni-muenster.de/ frage ich die Breite des Fensters ab und baue dann eine entsprechend große Grafik ein. Ich benutze dazu:

    var wdth=1000;
    if (document.body && document.body.offsetWidth) wdth=document.body.offsetWidth;
    else if (window.innerWidth) wdth=window.innerWidth;

    Gruß, Jürgen