Michael: ZUSATZ: Scrollen eines Frames

Hallo,

Entschuldigt bitte, wenn ich einen neuen Thread erstellt habe und nicht in meinem alten Thread weitergeschrieben habe, aber scheinbar hat keiner mehr meinen alten Thread weiter verfolgt.

Es geht noch einmal darum, dass ich bei MouseOver einer Grafik einen eingebetteten Frame scrollen möchte.

Ich habe die Funktion nun folgendermassen ausgebaut:

Die sensitive Grafik wird in einem eindeutigen Div so eingebunden:

<div id="hochscrollen"><a onmouseover="init([Richtung]);">...</a></div>

Hinweis:

Der Platzhalter ist im Quelltext beim Hochscrollen durch -1 bzw. beim Runterscrollen durch 1 ersetzt

Die Funktion init([Richtung]) soll nun die Überwachung des jeweiligen Div-Bereiches starten:

if (document.layers)
{
  document.getElementById('hochscrollen').captureEvents(Event.MOUSEOVER);
  document.getElementById('runterscrollen').captureEvents(Event.MOUSEOVER);
}

document.getElementById('hochscrollen').onmouseover = scrollen('-1');
document.getElementById('runterscrollenscrollen').onmouseover = scrollen('1');

Danach wird die Funktion scrollen(richtung) aufgerufen:

if (richtung == -1)
  anzeige.scrollBy(0,-3);
else
  anzeige.scrollBy(0,3);

Nun erhalte ich aber beim MouseOver-Ereignis die Fehlermeldung, dass die Abfrage "if (document.layers)" nicht implementiert sei.

Was passt nicht ?
Ich muss ja überprüfen, wie welcher Browser (IE, Netscape, Opera) Ereignisse abfängt.

Gruss, Michael

  1. Hallo,

    if (document.layers)
    {
      document.getElementById('hochscrollen').captureEvents(Event.MOUSEOVER);
      document.getElementById('runterscrollen').captureEvents(Event.MOUSEOVER);
    }

    Warum überprüfst du ob ein Objekt vorhanden ist, welches du gar nicht benutzen willst? Wenn du nur das Element document.getElementById benutzt, dann überprüfe doch lieber das.
    if (document.getElementById)

    Mit freudlichen Grüßen, NaeZnaL

    1. Hallo NaeZnaL,

      welches du gar nicht benutzen willst ?

      Hoppala, stimmt, Leichtsinnsfehler...

      Hab nun die Funktion korrigiert:

      function init(richtung)
      {
        document.getElementById('hochscrollen').captureEvents(Event.MOUSEOVER);
        document.getElementById('runterscrollen').captureEvents(Event.MOUSEOVER);

      document.getElementById('hochscrollen').onmouseover = scrollen('-1');
        document.getElementById('runterscrollenscrollen').onmouseover = scrollen('1');
      }

      function scrollen(richtung)
      {
        if (richtung == -1)
          anzeige.scrollBy(0,-3);
        else
          anzeige.scrollBy(0,3);
      }

      Nun bringt er mir aber die Meldung, dass "Event" undefiniert ist :-(

      Mann, Mann, Mann...

      Gruss, Michael

      1. Hallo.

        Nun bringt er mir aber die Meldung, dass "Event" undefiniert ist :-(

        Wenn es kein Netscape 4 ist stimmt das wohl.
        Ich glaube, die Idee mit document.layers war nicht schlecht,
        da captureEvents() eine Methode der selben ist.

        MfG _Siro.

        1. Hallo Siro,

          Und des Rätzels Lösung ? :o)

          Gruss, Michael

          1. Hallo.

            Und des Rätzels Lösung ? :o)

            42 oder so ähnlich.
            Ich habe leider keine Ahnung was das soll, ich hab's mit IE5.01 Standalone, IE6, NC4.78, Firefox ,Opera 6 und 7 probiert und es hat funktioniert.
            Welcher Browser meckert denn?

            MfG _Siro.