Documento antincendio.Ready sul pulsante indietro IE11
-
21-12-2019 - |
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?
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 .