2012-08-08 14 views
7

Ho una pagina PHP con jQuery $(document).ready() che esegue alcune modifiche al modulo nella pagina. Funziona bene Ma se vengo a questa pagina e poi sono andato su un altro e poi ho premuto "Indietro" dal browser e sono tornato su questa pagina, la funzione $(document).ready() non sembra funzionare affatto. Questo sta accadendo su FF e su Chrome.Esegui document.ready anche se l'utente è arrivato alla pagina premendo il pulsante Indietro

C'è un modo per eseguire document.ready anche se l'utente ha premuto il pulsante Indietro del browser per accedere alla mia pagina?

+0

Potrebbe essere che le forme si completino automaticamente su – Musa

+3

Due anni fa, ricerca di alcuni secondi: http://stackoverflow.com/questions/2638292/after-travelling-back-in-firefox-history-javascript-wont-run – Alfabravo

+0

@Musa, questo succede anche se non c'è alcuna forma usata. Fondamentalmente la funzione document.ready non si attiva se la pagina è stata visitata premendo il pulsante Indietro del browser :( – walmik

risposta

-1

Puoi provare questo passaggio.

Per prima cosa aggiungi un campo nascosto.

<input id="reload" type="hidden" name="reload" value="" />

Seconda aggiungere un codice javascript.

<script type="text/javascript"> 
    $(document).ready(function() 
    { 
      var d = new Date(); 
      d = d.getTime(); 
      if ($('#reload').val().length == 0) 
      { 
        $('#reload').val(d); 
        $('body').show(); 
      } 
      else 
      { 
        $('#reload').val(''); 
        location.reload(); 
      } 
    }); 

+0

Ciò funzionerebbe solo se l'evento "pronto" fosse sparato in primo luogo. Come @walmik ha menzionato, questo semplicemente non è il caso. –

0

Ho avuto esattamente lo stesso problema; @ Collegamento di Alfabravo mi ha aiutato molto qui: https://stackoverflow.com/a/12648785/679240

Il codice sotto funzionato abbastanza bene per me, dal momento che quello che ho effettivamente bisogno era di fare un po di pulizia sia quando l'utente ha immesso nella pagina o quando la pagina è stata raggiunta attraverso la parte posteriore pulsante:

$(window).on('pageshow', function(){ 
    console.info('Entered the page!'); 
}); 

Se è necessario rilevare specificamente in particolare quando la pagina è stata raggiunta attraverso il pulsante indietro ma non quando si entra per la prima volta, potrebbe essere necessario controllare un po 'di stato; il link qui sopra potrebbe aiutarti.

Problemi correlati