2012-08-08 15 views
7

Tengo una página PHP con $(document).ready() de jQuery que realiza algunos cambios en el formulario de la página. Esto funciona bien Pero si voy a esta página y luego voy a otra y luego presiono 'Atrás' desde el navegador y vuelvo a esta página, la función $(document).ready() parece no funcionar en absoluto. Esto está sucediendo tanto en FF como en Chrome.Ejecutar document.ready incluso si el usuario llegó a la página presionando el botón Atrás

¿Hay alguna manera de que pueda ejecutar document.ready incluso si el usuario pulsa el botón Atrás del navegador para acceder a mi página?

+0

Puede ser que sus formularios se hayan completado automáticamente en – Musa

+3

Hace dos años, unos segundos buscando: http://stackoverflow.com/questions/2638292/after-travelling-back-in-firefox-history-javascript-wont-run – Alfabravo

+0

@Musa, esto sucede incluso si no se usa ninguna forma. Básicamente, la función document.ready no se activará si se visita la página pulsando el botón Atrás del navegador :( – walmik

Respuesta

-1

Puede intentar este paso.

Primero añada un campo oculto.

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

Segunda añadir un código 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

Eso solo funcionaría si el evento 'listo' se disparara en primer lugar. Como @walmik mencionó, simplemente este no es el caso. –

0

que tenían exactamente el mismo problema; @ Enlace de Alfabravo me ha ayudado mucho aquí: https://stackoverflow.com/a/12648785/679240

El siguiente código funcionaba bien suficiente para mí, ya que lo que realmente necesitaba era hacer algo de limpieza o bien cuando el usuario ha introducido la página o cuando la página se alcanza a través de la parte posterior botón:

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

Si necesita detectar específicamente específicamente cuando la página se alcanzó a través el botón de retroceso pero no cuando se entra por primera vez, es posible que necesite para controlar un poco de estado; el enlace de arriba puede ayudarte allí.

Cuestiones relacionadas