2013-06-10 12 views
5

Il codice seguente funziona correttamente per il browser Firefox. Ma non cromato. Qual è il problema nel codice qui sotto?La funzione Onscroll non funziona per Chrome

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

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

Grazie

+1

A cosa è impostata la proprietà 'overflow' del tuo corpo? –

risposta

0

In Chrome, funziona se si collega il gestore di eventi per l'evento document.onscroll:

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

+1

-1 Non funziona in Chrome –

+0

Funziona in Chrome. Apri una nuova scheda (CTRL + T), apri gli strumenti di sviluppo (MAIUSC + CTRL + I), copia/incolla lo snippet di codice sopra e scorri la finestra: vedrai "Funziona in Chrome!" apparendo nella console. –

+4

Non puoi essere serio. Funziona semplicemente in Chrome. –

6

Non si vuole il () quando si sta assegnando callFn come gestore di onscroll.
Non si desidera eseguire la funzione, si desidera assegnare un riferimento ad essa.

Inoltre, onscroll per un intero documento sembra funzionare meglio con il cross browser sull'oggetto window anziché su document o document.body.

window.onscroll = Test.callFn; 
+0

Ciao, scusa per il mio errore di battitura. Inizialmente, ho chiamato la funzione sopra il formato. Ma non funziona solo per Chrome. – sprabhakaran

4

Ho avuto un problema simile oggi. È possibile modificare document.body a window:

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

ho notato che in cromo onscroll evento funziona quando body elemento ha attributo onscroll, ma in IE che sta funzionando quando html elemento ha attributo onscroll, quindi è il migliore per assegnare onscroll evento ascoltatore all'oggetto window.

PS. se vuoi controllare quanti pixel hai scostato, usa window.pageYOffset invece di document.body.scrollTop (la stessa situazione con chrome e IE come descritto sopra).

0

Una delle possibilità è che ci siano due istruzioni window.onscroll nella pagina che ogni istruzione chiama il metodo JS diverso. Controlla i file inclusi e tutti i metodi presenti nel caricamento della pagina.

Problemi correlati