Michael Klose: Immer noch Auslesen der Seitenhöhe / Scrollposition

Beitrag lesen

Hallo miteinander,

Da ich jetzt sehr lange rumprobiert habe und leider, leider noch immer zu keinem Ergebnis gekommen und mein Thema auch schon etwas abgedriftet ist, so dass kaum einer mehr einen Blick hineinwerfen dürfte, möchte ich das Thema jetzt nochmal neu aufgreifen.

Die Korrektur von Struppi ergab bei der Ausgabe der Scrollposition immer den Wert 0, warum auch immer:

» function Scrollposition_ermitteln ()
» {
»   if (typeof window.pageYOffset != 'undefined')
»     return parent.AnzeigeSeite.pageYOffset;
»   else
»     if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat')
»       return document.parent.AnzeigeSeite.scrollTop;
»     else
»       if (typeof document.body != 'undefined')
»         return parent.AnzeigeSeite.document.body.scrollTop;
» }

» Nicht document.parent, sondern document.documentElement.
» Ich gehe davon aus, dass parent.AnzeigeSeite ein Frameseite ist?

Die neue Variante zur Ermittlung der Scrollposition sieht nun so aus:

function Scrollposition_ermitteln ()
{
  return (document.all) ? parent.AnzeigeSeite.document.body.scrollTop : parent.AnzeigeSeite.window.pageYOffset;
}

Hier wird mir auch immer der richtige Wert ausgegeben, zumindest vermute ich das, da der "Zähler" bei jeder Scrollaktion um 1 erhöht wird, wenn ich kontinuierlich scrolle.

Ich denke, dass mein Problem immer noch mit der nicht korrekten Methode zum Auslesen der Seitenhöhe zusammenhängt.

Mein neuer Ansatz sieht so aus:

function Seitenhoehe_ermitteln ()
{
  if (document.getElementById && navigator.userAgent.indexOf ("Opera 4") != -1)
  { // Opera 4
    var Objekt = parent.AnzeigeSeite.document.getElementById("Seite");
    return Objekt.style.pixelHeight;
  }
  else
    if (document.getElementById && navigator.userAgent.indexOf ("Opera 5") != -1)
    { // Opera 5
      var Objekt = parent.AnzeigeSeite.document.getElementById("Seite");
      return Objekt.style.pixelHeight;
    }
    else
      if (document.getElementById)
      { // W3Ccomp; evtl. mit Vorsatz "parseInt"
        var Objekt = parent.AnzeigeSeite.document.getElementById("Seite");
        return Objekt.style.height;
      }
      else
        if (document.all)
        { // IE4; evtl. mit Vorsatz "parseInt"
          var Objekt = parent.AnzeigeSeite.document.all["Seite"];
          return Objekt.style.pixelHeight;
        }
}

"parent.AnzeigeSeite" bezieht sich dabei auf den einzigen Frame meiner Homepage, einen eingebetteten Frame namens "AnzeigeSeite". Aufgrund eines Tips von Gernot Back, mit dem ich gestern einen intensiven Austausch hatte, habe ich nun alle Seiten in einen übergeordneten DIV "Seite" gepackt, so dass ich eigentlich die Höhe dieses DIVs einfach auslesen müssten KÖNNTE.

Mein obiger Ansatz zum Auslesen des DIVs "Seite" liefert mir aber nun wiederum keinen Wert :-(

Es kann doch nicht so schwierig sein, die Seitenhöhe und die aktuelle Scrollposition (falls letzteres bei mir doch noch falsch sein sollte) auszulesen.

Auf ein neues, werte Mitstreiter, die Spiele sind wiedermal eröffnet :o)

Vielen Dank (wiedermal *g*) für Eure Mithilfe.

Gruss, Michael