steffen0815: IE 7.0 und Fensterhöhe

Hallo

vereinbare ich meine Seite "vernünftig mit:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
       "http://www.w3.org/TR/html4/loose.dtd">

Funktioniert der Code aus http://de.selfhtml.org/javascript/beispiele/fensterueberwachen.htm
 nicht mehr, die Fensterhöhe wird mit 0 angezeigt.
Weiß jemand die Ursache bzw. wie kann ich es vermeiden

  1. Hallo,

    vereinbare ich meine Seite "vernünftig mit:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

    "http://www.w3.org/TR/html4/loose.dtd">

    
    > Funktioniert der Code aus http://de.selfhtml.org/javascript/beispiele/fensterueberwachen.htm  
    >  nicht mehr, die Fensterhöhe wird mit 0 angezeigt.  
      
    Das Script funktioniert so nur im Quirksmode. Es wird mit document.body.offsetHeight und document.body.offsetWidth gearbeitet. Im standardkonformen Modus sind diese Eigenschaften nicht sinnvoll gefüllt, wohl aber die Eigenschaften document.documentElement.offsetHeight und document.documentElement.offsetWidth (document.documentElement ist das html-Element statt dem body-Element). Siehe <http://www.quirksmode.org/viewport/compatibility.html>.  
      
    Mathias
    
    1. Hallo Mathias,
      also irgendwie schnall ich das nicht.
      Auch nachfolgender Code funktioniert nicht mit IE7.0.
      [code=html]<!-- DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
             "http://www.w3.org/TR/html4/loose.dtd" -->
      <html><head>
      <title>Größenänderung überwachen</title>
      <script type="text/javascript">
      var x,y;
      if (self.innerHeight) // all except Explorer
      {
       x = self.innerWidth;
       y = self.innerHeight;
      }
      else if (document.documentElement && document.documentElement.clientHeight)
       // Explorer 6 Strict Mode
      {
       x = document.documentElement.clientWidth;
       y = document.documentElement.clientHeight;
      }
      else if (document.body) // other Explorers
      {
       x = document.body.clientWidth;
       y = document.body.clientHeight;
      }
      document.write (x + ' x ' + y)
      </script>

      </body></html>[/code]

      1. Auch nachfolgender Code funktioniert nicht mit IE7.0.

        auch nicht im IE 6.

        [code]<!-- DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
               "http://www.w3.org/TR/html4/loose.dtd" -->
        <html><head>
        <title>Größenänderung überwachen</title>
        <script type="text/javascript">
        var x,y;
        if (self.innerHeight) // all except Explorer
        {
        x = self.innerWidth;
        y = self.innerHeight;
        }
        else if (document.documentElement && document.documentElement.clientHeight)

        Du kannst auf keine Elemente zugreifen, die noch nicht zu Verfügung stehen. document.documentElement existiert erst nach dem vollständingen laden der Seite.

        Struppi.

        --
        Javascript ist toll (Perl auch!)