OttoB: document.body.clientWidth in «head»

mmh... Da wollte ich als Anfänger vielleicht ein bißchen zu viel:

Damit das Design optimal paßt (und bei kleinerern Auflösungen kein scroll-Balken nötig wird) sollen die rechten und unteren Frames eines 3x3 Framesets je nach Fensterauflösung mit einer etwas komplizierteren Funktion angepaßt werden.

Bei NN klapp das auch ganz ordentlich ("Funktion" vereinfacht):

<html>
<head>
<script language="javascript">
<!--
var funktion = window.innerWidth;
var varrechts = (funktion/4) -130;
var varunten = (funktion/4) -140;

document.write('<frameset rows="113,*,'+ varunten +'"border=0>');

document.write('<frameset cols="140,*,'+ varrechts +'"border=0>');

document.write('<frame src="rahmenobenlinks.htm' +'\"scrolling=no noresize>');  
document.write('<frame src="rahmenoben.htm' +'\"scrolling=no>');  
document.write('<frame src="rahmenobenrechts.htm' +'\"scrolling=no>');  

document.write("</frameset>");

document.write('<frameset cols="140,*,'+ varrechts +'"border=0>');

document.write('<frame src="rahmenlinks.htm' +'\"scrolling=no noresize>');  
document.write('<frame src="uebersicht.htm' +'\"name=hauptfenster>');  
document.write('<frame src="rahmenrechts.htm' +'\"scrolling=no>');  

document.write("</frameset>");

document.write('<frameset cols="140,*,'+ varrechts +'"border=0>');

document.write('<frame src="rahmenuntenlinks.htm' +'\"scrolling=no noresize>');  
document.write('<frame src="rahmenunten.htm' +'\"scrolling=no>');  
document.write('<frame src="rahmenuntenrechts.htm' +'\"scrolling=no>');  

document.write("</frameset>");

document.write("</frameset>");

// -->

</script>
</head>
<body>
</body>
</html>

Das Problem ist die Lösung für den IE. Habs mit document.body.clientWidth probiert, aber das geht nicht (funktioniert wohl nicht im header, oder?). Gibt es da noch eine andere Möglichkeit?

Danke für die Hilfe!

  1. Hi,

    mmh... Da wollte ich als Anfänger vielleicht ein bißchen zu viel:

    vielleicht. Wäre eine Lösung mit Prozentangaben nicht machbar?

    Das Problem ist die Lösung für den IE. Habs mit document.body.clientWidth probiert, aber das geht nicht (funktioniert wohl nicht im header, oder?). Gibt es da noch eine andere Möglichkeit?

    Ich sehe keine. document.body funktioniert natürlich (*grml*) erst, wenn auch ein Body bzw. ein Frameset existiert. Netscape hat dies IMHO besser gelöst, zumal die verfügbare Auflösung einzig vom Fenster (window-Objekt) abhängt.

    Möglicherweise geht es, indem Du noch ein Frameset davorsetzt, welches aus einem Frame "100%" und einem "*" besteht. Dort kannst Du dann die Größe des 100%-Frames bestimmen. Ob das allerdings so optimal ist... Besser wäre es wohl, das Design nicht so exakt zu planen. Halte es flexibel, möglichst einfach definiert. Nicht leicht, aber es geht :-)

    Cheatah

    1. Also erstmal Danke für die Antwort!

      vielleicht. Wäre eine Lösung mit Prozentangaben nicht machbar?

      Glaub ich nicht. (aber ich laß mich gern eines besseren belehren...)
      Ich würde gerne mit den rechten/unteren Frames der Vergrößerung bzw. Verkleinerung des mittleren Frames bei großer bzw. kleiner Bildschirmgröße ein wenig entgegenwirken. Allerdings dürfen die rechten und unteren Frames aus Design-Gründen wirklich nicht größer als 125 Pixel oder kleiner als 15 Pixel werden.(Dann wär das ganze Design für die Katz...)

      Das Problem ist die Lösung für den IE. Habs mit document.body.clientWidth probiert, aber das geht nicht (funktioniert wohl nicht im header, oder?). Gibt es da noch eine andere Möglichkeit?

      Ich sehe keine. document.body funktioniert natürlich (*grml*) erst, wenn auch ein Body bzw. ein Frameset existiert. Netscape hat dies IMHO besser gelöst, zumal die verfügbare Auflösung einzig vom Fenster (window-Objekt) abhängt.

      Möglicherweise geht es, indem Du noch ein Frameset davorsetzt, welches aus einem Frame "100%" und einem "*" besteht. Dort kannst Du dann die Größe des 100%-Frames bestimmen. Ob das allerdings so optimal ist... Besser wäre es wohl, das Design nicht so exakt zu planen. Halte es flexibel, möglichst einfach definiert. Nicht leicht, aber es geht :-)

      Interessante Idee. Aber ich glaub, da wird der Aufwand langsam zu groß...

      Vielleicht muß ich doch ein einfacheres Design wählen, oder hat noch jemand eine Idee?

    2. Also erstmal Danke für die Antwort!

      vielleicht. Wäre eine Lösung mit Prozentangaben nicht machbar?

      Glaub ich nicht. (aber ich laß mich gern eines besseren belehren...)
      Ich würde gerne mit den rechten/unteren Frames der Vergrößerung bzw. Verkleinerung des mittleren Frames bei großer bzw. kleiner Bildschirmgröße ein wenig entgegenwirken. Allerdings dürfen die rechten und unteren Frames aus Design-Gründen wirklich nicht größer als 125 Pixel oder kleiner als 15 Pixel werden.(Dann wär das ganze Design für die Katz...)

      Das Problem ist die Lösung für den IE. Habs mit document.body.clientWidth probiert, aber das geht nicht (funktioniert wohl nicht im header, oder?). Gibt es da noch eine andere Möglichkeit?

      Ich sehe keine. document.body funktioniert natürlich (*grml*) erst, wenn auch ein Body bzw. ein Frameset existiert. Netscape hat dies IMHO besser gelöst, zumal die verfügbare Auflösung einzig vom Fenster (window-Objekt) abhängt.

      Möglicherweise geht es, indem Du noch ein Frameset davorsetzt, welches aus einem Frame "100%" und einem "*" besteht. Dort kannst Du dann die Größe des 100%-Frames bestimmen. Ob das allerdings so optimal ist... Besser wäre es wohl, das Design nicht so exakt zu planen. Halte es flexibel, möglichst einfach definiert. Nicht leicht, aber es geht :-)

      Interessante Idee. Aber ich glaub, da wird der Aufwand langsam zu groß...

      Vielleicht muß ich doch ein einfacheres Design wählen, oder hat noch jemand eine Idee?