raphael: outerwidth des .window aus frame heraus abfragen

Hallo,

ich habe ein Script geschrieben, das entsprechend der Auflösung des Benutzers eine bestimmte Seite laden soll (inhalt.scr="umleitung.htm" in der Index.htm also Frame[1]):
Umleitung.htm:

<html>

<head>
<title>umleitung</title>
<script language="javascript">

<!--
 function weiterleiten() {
     if (document.all) {
      if (window.screen.width<"700") {
       parent.location.href="index640.htm";
       parent.location.reload()
      }
      else if (window.screen.width<"900") {
       parent.frames[1].location.href="treenav640.htm"
      }
      else {
       parent.frames[1].location.href="treenav.htm"
      }
     }
     else if (document.layers) {
      if (window.outerwidth<"700") {
       parent.location.href="index640.htm";
       parent.location.reload()
      }
      else if (window.outerwidth<"900") {
       parent.frames[1].location.href="treenav640.htm"
      }
      else {
       parent.frames[1].location.href="treenav.htm"
      }
     }
 }
//-->
</script>
</head>

<body onload="javascript:weiterleiten();">
</body>

</html>

Das Script funktioniert im IE einwandfrei, im NN wird immer der else Fall genommen.

Ich habe bereits ausprobiert:
1.   " bei den if weggelassen
2.   statt window.outerwidth window.width
3.   zum testen: window.innerwidth
4.   parent.window.outerwidth
5.   main.window.outerwidth (main ist parent.name)
6.   top.window.outerwidth
7.   bei alert(3-6.outerwidth) gibt immer undefiniert zurück

Das ironische dabei ist, das ich ein Script benutze um das Browser-Fenster zu maximieren, das in IE und NN funktioniert, auch window.outerwidth benutzt, allerdings in der index.htm eingebettet ist.

Noch genauer kann ich das Problem nicht beschreiben. Wer will kann sich das Problem ja mal unter www.stuer.de anschauen. Das Problem unter IE 5.5 mit dem schwarzen Rahmen im Menü habe ich bereits geändert, dauert immer nur ein bißchen bis T-Online aktualisiert.

Und: Wenn mir da noch jemand weiterhelfen könnte:
Funktionieren Hover-Buttons unter NN 4.x nicht? Wenn doch, was habe ich dann falsch gemacht? (Habe auch schon probiert das a:hover in die <class> Definition von a aufzunehmen, das hat aber auch nicht geholfen.)

Vielen Dank im voraus,

Raphael

  1. hi,

    teste: alert(window.outerWidth);

    (gross "W"!), aber bedenke: Browserfenstergroesse und Aufloesung haben nix miteinander gemein.
    Besser: Fenstergroesse abfragen, so etwa:

    // ein paar objecte/browser
    var nc  = !!(document.captureEvents && !document.documentElement);
    var ie  = !!document.all;
    var ie4  = !!(!document.documentElement && document.all);
    var dom  = !!document.documentElement;
    var nc6  = !!(dom && (!document.all));

    // Groesse Browserfenster / Dokument
    function winSize() {
        if(ie) {
            breit  = document.body.clientWidth;
            hoch   = document.body.clientHeight;
        }
        if (nc || nc6) {
            breit  = self.innerWidth;
            hoch   = self.innerHeight;
        }
    }

    hth

    Gruesse  Joachim

    1. hi,

      teste: alert(window.outerWidth);

      (gross "W"!), aber bedenke: Browserfenstergroesse und Aufloesung haben nix miteinander gemein.
      Besser: Fenstergroesse abfragen, so etwa:

      // ein paar objecte/browser
      var nc  = !!(document.captureEvents && !document.documentElement);
      var ie  = !!document.all;
      var ie4  = !!(!document.documentElement && document.all);
      var dom  = !!document.documentElement;
      var nc6  = !!(dom && (!document.all));

      // Groesse Browserfenster / Dokument
      function winSize() {
          if(ie) {
              breit  = document.body.clientWidth;
              hoch   = document.body.clientHeight;
          }
          if (nc || nc6) {
              breit  = self.innerWidth;
              hoch   = self.innerHeight;
          }
      }

      hth

      Gruesse  Joachim

      Danke,
      das W wars schon, dummer Fehler (wahrscheinlich betriebsblind), kennst du vielleicht auch noch eine Antwort auf mein hover Problem?

      Raphael