Andrea: Anzeigebereich bei NS 6, Opera 6 und IE 6 ausfragen

Hallo, liebe Leute,

ich hätte da ein W3C-kompatibilitätsproblem. Ich zentriere mit Hilfe von DHTML einen div-Bereich mit der Größe 620 * 425 px auf einer Seite. Nachdem mein Skript für IE4+ und Netscape 4 prima funktioniert, wollte ich das Skript für Netscape 6 anpassen. Ich glaubte gelesen zu haben, dass dieser sich nun absolut W3C-konform verhielte. Leider funtioniert mein Nav6-Zweig aber nicht mit Opera 6 oder IE 6, die sich mittlerweile auch ans W3C hielten. Helft mir also bitte den Nav6-Zweig so anzupassen, dass dieser (natürlich bei entsprechender if-Abfrage) auch im Opera 6 u.a. läuft. Ich möchte nicht für jeden einzelnen Browser demnächst eine Version schreiben.

Gegeben sind ein div-Bereich mit der id="ID" und die jeweiligen Browsererkennungen. Ich denke, es müsste im "self.innerHeight"/"self.innerWidth"-Breich des Nav6-Strang liegen.

if (IE4) {
         var vlxScreenWidth = document.body.clientWidth;
         var vlxScreenHeight = document.body.clientHeight;
         document.all.ID.style.pixelLeft = (vlxScreenWidth-620)/2;
         document.all.ID.style.pixelTop = (vlxScreenHeight-425)/2;
          };

if (Nav4) {
         var vlxScreenWidth = self.innerWidth;
         var vlxScreenHeight = self.innerHeight;
         document.layers.ID.left = (vlxScreenWidth-620)/2;
         document.layers.ID.top = (vlxScreenHeight-425)/2;
         };

if (Nav6) {
         var vlxScreenWidth = self.innerWidth;
         var vlxScreenHeight = self.innerHeight;
         document.getElementById("ID").style.left = (vlxScreenWidth-620)/2;
         document.getElementById("ID").style.top = (vlxScreenHeight-425)/2;
         };
     };

Danke, für Eure Mühe
Andrea

  1. Hallo.

    Also, wir gehn von drei Browsern aus, Internet Explorer, Netscape (bzw. Mozilla) und Opera jeweils ab der Version 4.

    Abfragen des Anzeigebereichs (jeweils Versionen 4 bis 6):
    Der IE kennt document.body.clientWidth und document.body.clientHeight.
    Netscape und Opera kennen window.innerWidth und window.innerHeight.

    Positionieren:
    Die Netscape un IE Versionen, die DOM Unterstützung haben, das wären also N6 und IE5-6, können mit document.getElementById("ID").style.left und document.getElementById("ID").style.top positioniert werden.
    Opera hingegen kennt in allen drei relevanten Versionen (4er, 5er und 6er) nur document.getElementById("ID").style.pixelTop und document.getElementById("ID").style.pixelLeft.

    Gruß
    Norbert