• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

JS onScroll Problem

fehlfarbe

Neues Mitglied
Heyho,

ich muss für eine kleine Belegarbeit eine Art eBookreader basteln, der Textdateien ausliest und ausgibt, wobei der aktuelle Lesestand, in dem Fall die Scrollposition, gespeichert werden soll. Im Grunde kein großes Problem, das ich mit einem PHP Skript gelöst habe, das beim scrollen durch eine AJAX Funktion aufgerufen wird.
Nun habe ich leider das Problem, dass das onScroll() Event im IE[8] nur im Kompatiblitätsmodus feuert, obwohl es bei anderen Webseiten auch so funktioniert.

Seit Stunden werkel ich schon daran herum, finde den Fehler aber einfach nicht. Vielleicht weiß ja jemand mit freiem Kopf was ich falsch mache?!

Zur Seite geht es hier: Alles für die Leseratte

Einfach auf ein Buch auf der Startseite klicken und schon wird es geöffnet und das onScroll Event für den Body aktiviert. Zum debuggen wird die aktuelle Scrollposition auch gleich in die Titelleiste geschrieben, damit man sofort sieht, ob das Event feuert.

Ich hoffe, mir kann jemand helfen.

lg
 
Werbung:
Hallo fehlfarbe,
ich kann dir zwar nicht sagen warum onScroll nicht funktioniert, aber nutz halt einen anderen Eventhandler..
z.b. OnMouseMove und prüf bevor du den AJAX Request verschickst ob die Scroll Position eine andere ist wie beim letzten onmousemove..
 
Hallo T-sneak,

bei onMouseMove gäbe es aber sicherlich ein Problem, wenn ohne Mausbewegung navigiert und gescrollt wird. Ich hab es auch schon mit dem onUnload Hanlder probiert, der ja eigentlich perfekt wäre, da er nur beim Verlassen der Seite aufgerufen wird. Aber der scheint zumindest in Verbindung mit meinem AJAX Skript nicht zu funktionieren.
Mit jQuery hab ich auch schon experimentiert, aber da wird der Handler sowohl im IE als auch im FF nur einmal beim Laden der Seite aufgerufen. Testcode sah so aus:

Code:
<script>$("html,body").scroll(alert("du hast gescrollt"));</script>
 
Werbung:
Hmm du könntest es auch über ein Timeout machen.. Jede Sekunde wird dann einfach auf Änderungen geprüft dann braucht man keinen Event Handler mehr. Bzw das so implementieren das es immer dann genutzt wird wenn onScroll nicht funktioniert.. die können ja dann im Endeffekt beide die selbe Funktion aufrufen
 
Hey,

danke noch mal für die Tipps. Ich habe es nun hin bekommen, dass onscroll auch im IE8 und 9 funktioniert. Wenn ich den Eventhandler an den <html> tag binde, funktioniert es einwandfrei.
 
Werbung:
Zurück
Oben