2014-09-12 14 views
5

Voglio rilevare il pulsante di ritorno del browser in java-script/jquery senza utilizzare alcun plugin esterno.Rileva il pulsante Indietro del browser in javascript/jquery senza utilizzare plugin esterni

ho intenzione di sostenere seguenti browser

IE8, IE9, Firefox, Chrome

Ho cercato su google tanti link e ho trovato qui sotto parte del codice dal progetto di codice

<body onbeforeunload=”HandleBackFunctionality()”> 

function HandleBackFunctionality() 
{ 
    if(window.event) 
    { 
     if(window.event.clientX < 40 && window.event.clientY < 0) 
     { 
      alert("Browser back button is clicked..."); 
     } 
     else 
     { 
      alert("Browser refresh button is clicked..."); 
     } 
    } 
    else 
    { 
     if(event.currentTarget.performance.navigation.type == 1) 
     { 
      alert("Browser refresh button is clicked..."); 
     } 
     if(event.currentTarget.performance.navigation.type == 2) 
     { 
      alert("Browser back button is clicked..."); 
     } 
    } 
} 

Il sopra codice funzionante bene browser IE. ciò significa che posso ottenere i valori window.event.clientX e clientY nel browser IE. ma in chrome/firefox non funziona.

Quando si fa clic sul pulsante Indietro del browser, ho bisogno di aggiornare la pagina.

come posso rilevare il browser di nuovo il tasto click evento in tutti i browser (IE, Firefox, Chrome)

qualsiasi aiuto sarebbe apprezzato.

+0

Siete alla ricerca di 'funzione di window.onpopstate'. [Documentazione dell'API Mozilla] (https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onpopstate) [Caniuse.Popstate] (http://caniuse.com/#feat=history) – Mysteryos

+1

@Mystreyos ma popstate l'evento è come l'evento HTML5 giusto? ma voglio anche supportare IE8. potresti per favore aggiornare più dettagli in merito. Grazie – SivaRajini

+0

Alla ricerca di ** esattamente ** la stessa cosa, come rilevare il pulsante Indietro e Avanti fare clic su IE8. – lowtechsun

risposta

4

Questo può essere semplicemente lasciato cadere nella tua pagina web, e quando l'utente fa clic indietro, chiamerà una funzione. La funzione predefinita su questa chiamata è un avviso javascript "Pulsante Indietro cliccato".

Per sostituire questa funzionalità, è sufficiente sostituire la funzione OnBack. Questo può essere fatto usando il codice qui sotto.

<script type="text/javascript"> 
bajb_backdetect.OnBack = function() 
{ 
    alert('You clicked it!'); 
} 
</script> 

Questo ora sostituirà l'avviso "Pulsante Indietro cliccato" con un avviso "Hai fatto clic!".
supporto seguenti browser IE8, IE9, Firefox, Chrome
Browser Back Button Detection
o utilizzando jquery
Catching browser back
utilizzando le normali javascript
Mastering The Back Button With Javascript

+0

Grazie. Perché è necessario fare riferimento a qualsiasi script esterno? – SivaRajini

+0

Quando si utilizza una libreria di grandi dimensioni come jQuery. 3 KB non è un limite ragionevole per uno script. – Hamix

+0

richiede "backfix.min.js". quindi ho bisogno senza plugin esterni chiaramente menzionati in questa domanda – SivaRajini

1

Dato che stai supportando anche IE 8 e 9, non esiste un unico metodo che ti aiuti a risolvere questo problema. È possibile utilizzare l'API di cronologia di html5 ma che non supporta IE8 e 9. Come mysteryos menzionati nel commento precedente, è possibile utilizzare window.onPopState per chrome, firefox ecc. E per IE è possibile creare un file js separato e utilizzare istruzioni condizionali per attivarlo quando l'utente utilizza IE.

Ad esempio:

<!--[if lte IE 9]> 
    <script src="youIESpecificfile.js"></script> 
<![endif]--> 

Per saperne di più l'API HTML5 Storia qui: onPopState by mozilla

Spero che questo aiuti!

Problemi correlati