Domanda

Ho una pagina con un modulo di ricerca.Quando visiti la pagina per la prima volta, ho un jQuery (Document) .ready () sparating:

jQuery(document).ready(
  function () {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);
.

Ora quando si invia il modulo e quindi premi il pulsante Indietro, il documento.Ready non spara e deve essere.

Il problema originale era solo in Firefox, ma dopo alcune ricerche ho scoperto che aggiungere un evento di scarico al corpo risolto che:

jQuery(window).unload(function(){});
.

Ora, mi è stato detto che non funziona in IE11.

Qualcuno ha qualche consiglio per ottenere il documento. Funzione errata per sparare in IE11?

È stato utile?

Soluzione

Allora, sono inciampato attraverso Questa risposta nella mia ricerca, sepolto nella parte inferiore del post.

Ho dato un colpo e funziona:

// break the bfcache (ie11 and all others likely)
jQuery(window).focus(
  function() {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);
.

Ho lasciato intatto il codice originale, perché nel mio caso sto semplicemente impostando un timestamp UNIX ed è OK se succede più volte.

Risposta completa:

jQuery(document).ready(
  function () {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

jQuery(window).unload(function(){});

jQuery(window).focus(
  function() {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);
.

Altri suggerimenti

Per chiunque altro che corre in questo problema, ecco un articolo MSDN che documenta come interrompere il comportamento di memorizzazione nella cache indietro / avanti di IE11: https://msdn.microsoft.com/library/dn265017 (v= vs.85) .aspx .Secondo ciò, aggiungendo un gestore di eventi precedenti lo ferma.Questo funziona anche su Firefox: https://developer.mozilla.org/en-us/docs/using_firefox_1.5_caching .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top