2010-12-06 23 views
0

Après avoir ajouté ce code court js:Le bouton «Précédent» du navigateur va à l'avant-dernière page. Pourquoi?

$(document).ready(function() { 
    //check to see if it's an external link and if so do the splashpage 
    $('a').click(function() { 
     var $this = $(this); 

     //get the redirect url 
     var redirect_url = $this.attr('href'); 
     var string_url = String(redirect_url); 
     if (string_url.indexOf("http") !== -1) { 


      $('#external_link_modal').modal({ 
       overlayClose: true, 
       overlayCss: { 
        backgroundColor: "#ebebeb" 
       } 
      }); 


      setTimeout(function() { 
       window.location.replace(string_url); 
      }, 2500); 
      return false; 
     } 

    }); 
}); 

Lorsque quelqu'un clique sur un lien (dire sur la page A), il apparaît un avertissement puis après un certain temps, rediriger l'utilisateur vers la nouvelle URL (par exemple la page B) .

Cependant, lorsque quelqu'un clique sur le bouton de « Retour » du navigateur à la page B, au lieu de prendre l'utilisateur à la page A comme il est censé le faire, il lui faut en fait à la page vue avant Page A.

Il est Vraiment étrange. Quelqu'un a-t-il une idée de pourquoi?

Merci d'avance!

+0

Aucun expert JS ici, mais est-ce un problème avec les valeurs d'index par rapport aux valeurs non index utilisées? –

Répondre

2

window.location.replace(string_url) remplace l'entrée de l'historique en cours avec string_url. Vous devez définir window.location.href à la place:

window.location.href = string_url; 
+0

Merci. Cela fonctionne et apprécie l'explication du comportement du bouton «Précédent» du navigateur. – MonkeyBoo

1

Je ne l'ai pas testé, mais essayez de remplacer:

window.location.replace(string_url)

avec:

window.location.href=string_url

Laissez-moi savoir si cela résout le problème ou si elle présente le même comportement .

+0

Ceci est la bonne réponse. – SLaks

+0

merci. ça marche! – MonkeyBoo