Javascript history.back perde le résultat de la recherche

Page A:

$(document).ready(function () { bindData(); }); function bindData() { $('#searchbtn').bind('click', function () { SearchResult(); }); } function SearchResult() { ajax call... } 

Page A HTML:

 <input type="button" id="searchbtn" /> 

Page B Détails —> cette page vient après avoir sélectionné un résultat de recherche spécifique de la page Une liste de recherche

  <a href="javascript:history.back();">Back</a><br /> 

Maintenant, quand je retourne à la page, AI peut voir mes critères de recherche comme ils ont été sélectionnés, mais le résultat de Div est parti. Ce que j'essaie de faire, c'est que je souhaite que la liste de recherche reste lorsque la page revient. Je pense que ce que je peux faire ici est un peu comment appeler l'événement clickbout de recherche à nouveau lorsque la page revient afin que la liste apparaisse à nouveau. Quelqu'un peut-il me dire comment déclencher l'événement de clic de recherche uniquement lorsque la page revient de la page B. ou indiquez-moi le bon moyen de le faire … Merci

Le bouton Retour du navigateur a longtemps été problématique avec AJAX. Il existe des scripts, des solutions de contournement et des techniques (selon le cadre que vous souhaitez utiliser).

Comme il semble que vous utilisez jQuery (basé sur votre syntaxe de JavaScript affichée), voici un lien vers une autre publication de Stackoverflow concernant les plugins jQuery du bouton arrière .

history.back() vous ramènera au dernier URL visité, ce qui signifie que tous les appels ajax effectués lors de la visite de l'utilisateur ne seront pas automatiquement répétés. Votre navigateur peut restaurer automatiquement vos sélections de formulaire, mais la fonction SearchResults() n'est appelée que par un événement de click , pas un événement de sélection.

Vous pouvez lier des URL aux états ajax en utilisant un framework comme sammy.js . De cette façon, history.back() vous amène à une URL associée à SearchResults() .

  function bindData() { var chkinput1 = $("input:checkbox[name=x]:checked").length; var chkinput2 = $("input:checkbox[name=y]:checked").length; if (chkinput1 > 0 && chkinput2 > 0) { SearchResult(); } $('#searchbtn').bind('click', function () { SearchResult(); }); } 

Je sais que c'est la pire façon d'atteindre ce résultat, mais je pense que, au lieu d'utiliser d'autres plugins pour ajouter de la complexité, nous allons le faire pour le moment. Si quelqu'un d'autre cherche la même question, permettez-moi de vous dire encore que ce n'est pas la meilleure pratique, car, en revenant à l'histoire, nous appelons le résultat de la recherche en fonction de la sélection des cases mises en cache des cases à cocher et en générant de nouveau l'appel ajax Affiche la liste. Lors de la première requête, je cache la liste et définis l'expiration du glissement, donc je ne prends pas le temps de revenir et tout le monde vit joyeusement.