Question

J'ai une page avec un formulaire de recherche.Lorsque vous visitez la page pour la première fois, j'ai une jQuery (document) .Ready () tiers:

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

Maintenant, lorsque vous soumettez le formulaire, puis appuyez sur le bouton Retour, le document.Ready ne tire pas, et cela doit.

Le problème initial n'était que dans Firefox, mais après quelques recherches, j'ai constaté que l'ajout d'un événement de déchargement au corps a résolu que:

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

Maintenant, on m'a dit qu'il ne fonctionne pas dans IE11.

Tout le monde a des conseils pour obtenir le document.Ready Function à tirer dans IE11?

Était-ce utile?

La solution

Alors, je suis tombé sur Cette réponse dans ma recherche, enterré au bas de la poste.

Je lui ai donné un coup et ça marche:

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

J'ai quitté le code d'origine intact, car dans mon cas, je suis simplement définissant un horodatage UNIX et c'est ok si cela arrive plusieurs fois.

Réponse complète:

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));
  }
);

Autres conseils

Pour quelqu'un d'autre qui rencontre ce problème, voici un article MSDN documentant comment arrêter le comportement de la mise en cache en arrière / vers l'avant IE11: https://msdn.microsoft.com/library/dn265017 (v= vs.85) .aspx .Selon cela, l'ajout d'un gestionnaire d'événements à l'avant le charge l'arrête.Cela fonctionne également sur Firefox: https://developer.mozilla.org/en-us/docs/using_firefox_1.5_caching .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top