2013-06-10 41 views
5

Poniższy kod działa poprawnie w przeglądarce Firefox. Ale nie chrom. Na czym polega problem w poniższym kodzie?Funkcja Onscroll nie działa w przeglądarce Chrome

window.onload = function() 
{ 
    document.body.onscroll = Test.callFn; 
} 

var Test = new function() 
{ 
    this.callFn = function() 
    { 
     console.log("Calling this function"); 
    } 
} 

Dzięki

+1

Do czego służy właściwość 'overflow' w organizmie? –

Odpowiedz

0

W Chrome to działa, jeśli dołączyć obsługi zdarzeń do zdarzenia document.onscroll:

document.onscroll = function() { console.log('Works in Chrome!'); };

+1

-1 To nie działa w Chrome –

+0

Działa w przeglądarce Chrome. Otwórz nową kartę (CTRL + T), otwórz narzędzia programistyczne (SHIFT + CTRL + I), skopiuj/wklej fragment kodu powyżej i przewiń okno: zobaczysz "Działa w Chrome!" pojawia się w konsoli. –

+4

Nie możesz być poważny. Po prostu działa w Chrome. –

6

nie chcesz się () kiedy przypisanie callFn jako program obsługi onscroll.
Nie chcesz wykonywać tej funkcji, chcesz przypisać do niej odniesienie.

Ponadto przewijanie całego dokumentu wydaje się działać lepiej w przeglądarce niż obiekt window, a nie document lub document.body.

window.onscroll = Test.callFn; 
+0

Witam, przepraszam za moją literówkę. Początkowo nazwałem funkcję wyższą niż format. Ale nie działa tylko dla chrome. – sprabhakaran

4

Miałem podobny problem dzisiaj. Można zmienić document.body do window:

window.onload = function() 
{ 
    window.onscroll = function() 
    { 
     console.log("Calling this function"); 
    } 
} 

Zauważyłem, że w chromie onscroll wydarzenie pracuje gdy body element posiada atrybut onscroll, ale w IE to działa kiedy html element posiada atrybut onscroll, więc jest to najlepszy przypisać onscroll imprezę obiekt słuchacza do obiektu window.

PS. jeśli chcesz sprawdzić, ile przewiniętych pikseli - użyj window.pageYOffset zamiast document.body.scrollTop (taka sama sytuacja z chrome i IE, jak opisano powyżej).

0

Jedną z możliwości jest to, że na twojej stronie znajdują się dwie instrukcje: window.onscroll, każda z instrukcji wywołuje inną metodę JS. Sprawdź dołączone pliki i wszystkie metody, które są w trakcie ładowania strony.

Powiązane problemy