2016-03-11 13 views
6

Sto usando id in ogni pagina per scorrere la pagina ad un tasso fisso ogni volta che l'utente sta reindirizzando a un'altra pagina nel mio sito web. Il mio problema è, l'utente deve fare doppio clic sul pulsante Indietro del browser per reindirizzare la pagina alla pagina precedente, Quindi ho bisogno di impostare doppio clic sul pulsante Indietro di un browser ogni volta che l'utente ha fatto un solo clic sul pulsante Indietro del browser ..
Graziepulsante Indietro del browser singolo clic in doppio clic utilizzando javascript

risposta

0

risposta breve:

document.onmouseover = function() { 
 
    //User's mouse is inside the page. 
 
    window.innerDocClick = true; 
 
} 
 

 
document.onmouseleave = function() { 
 
    //User's mouse has left the page. 
 
    window.innerDocClick = false; 
 
} 
 

 
window.onhashchange = function() { 
 
    if (!window.innerDocClick) { 
 
    //Browser back button was clicked 
 
    window.history.go(-2); 
 
    } 
 
}

Spiegazione:

L'oggetto window.history contiene gli URL che l'utente ha visitato nel browser. La funzione window.history.go(x) viene utilizzata per far passare il browser alla pagina relativa nella cronologia (quindi in questo caso -2 per tornare indietro di 2 pagine).

Per rilevare quando è stato premuto il pulsante Indietro nel browser, ho effettuato una ricerca rapida e ho trovato la soluzione su this question here su "Come rilevare l'evento del pulsante Indietro del browser - Cross Browser". La risposta accettata ha un approccio molto completo e dettagliato a questo, che ho usato per ottenere lo snippet sopra, che dovresti assolutamente leggere.

Una rapida panoramica di ciò che il frammento di cui sopra, è che utilizza 2 eventi per rilevare se il mouse dell'utente si trova all'interno del documento di pagina o meno. Se non è presente nel documento della pagina, significa che l'utente non sta facendo clic su alcun elemento in-page come i collegamenti ipertestuali ecc., Che potrebbero anche cambiare l'URL. L'evento "onhashchange" rileva quando cambia l'hash della posizione, quindi controlla se il mouse dell'utente si trova all'interno del documento e, in caso contrario, esegue il pulsante double-back.

Nota: questo metodo non copre se l'utente preme il tasto backspace. La risposta accettata copre un metodo per farlo usando jQuery, che sembra come se potesse essere modificato per funzionare in JavaScript vanilla se jQuery non è voluto. Questo metodo probabilmente non copre dispositivi come iPad o altri tablet e dispositivi mobili in quanto non hanno eventi del mouse. Inoltre, gli eventi di scorrimento sul trackpad di un Mac non saranno probabilmente coperti. Non avendo questi dispositivi, è impossibile per me testarli.

Problemi correlati