più recente browser sono migliori su come mantenere le pagine precedenti pronte per visualizzare quando si utilizza i pulsanti Avanti e Indietro. Quindi, ciò che probabilmente sta accadendo è che il tuo browser sta semplicemente rivisitando la pagina dopo che l'$("body").fadeOut(500, redirectPage);
ha terminato l'esecuzione. Cioè, la pagina che viene visualizzata dopo aver fatto clic sul pulsante Indietro ha applicato lo stile body { display: none; }
.
Non ho avuto problemi a navigare la pagina con Chrome "6.0.472.51 beta" utilizzando i pulsanti Indietro e Avanti. Quando ho usato Firefox 3.5 ho visto il problema descritto quando si utilizza il pulsante Indietro per tornare alla pagina indice. Usando Firebug, sono stato in grado di confermare che lo stile dell'elemento del corpo era impostato su display: none
.
Quindi quello che stai vedendo è Firefox bfcache mantenendo la pagina nello stato precedente, JavaScript e tutto. Se desideri che Firefox rileggi il tuo codice di dissolvenza, puoi collegarlo all'evento pageshow
di Firefox. Allo stesso modo, WebKit ha il suo meccanismo pagecaching (che influenzerebbe Safari e Chrome).
Si deve anche notare che la funzione di jQuery .ready()
è non la stessa cosa che la funzione window.load()
. Vedere lo documentation per ulteriori dettagli. Il source code per la funzione .ready()
è anche molto utile.
Per riepilogare: Il codice eseguito da $.ready()
viene eseguito prima dello la pagina viene effettivamente visualizzata. Nei browser più recenti, quando si esce da una pagina è molto probabile che il browser salvi lo stato di quella pagina esattamente come è quando lo si lascia. Pertanto, quando si utilizza il pulsante Indietro del browser per tornare alla pagina, la pagina non verrà nuovamente visualizzata. Questo è il DOM non verrà ricostruito e la funzione $.ready()
non verrà riattivata. Se si dispone di codice che deve essere eseguito ogni volta che la pagina è visualizzata, allegare il codice al metodo pageshow()
(se esiste).
fonte
2010-09-02 15:22:01
Sì! Questo è successo, grazie! – Rembrand