2010-02-24 4 views
12

Avec onclick="history.go(-1);return false;" l'utilisateur peut naviguer vers les pages arrière. Mais si je veux mettre une méthode de confirmation avant de prendre l'utilisateur à l'arrière. Comment ferais-je cela?Comment configurer la redirection javascript pour envoyer l'utilisateur à la page arrière? voir le code

Je pense que cela peut être réalisé en faisant quelque chose comme ci-dessous, mais je ne suis pas sûr de savoir comment rediriger l'utilisateur à la page arrière?

$('.clickme').click(function() { 
    if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     //window.close(); 
     // how to redirect to history.go(-1) ?? 
    }   
    return false; 
}); 

MISE À JOUR

Aussi est-il une manière que je peux vérifier si l'histoire a des valeurs ou est vide? Alors que je peux alerter l'utilisateur si est vide?

Répondre

29

Il est tout aussi simple que vous pensez qu'il est:

$('.clickme').click(function() { 
    if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     history.go(-1); 
    }   
    return false; 
}); 
+0

oh, j'aurais essayé avant de demander. Laisse-moi essayer. – user187580

+0

y at-il un moyen de vérifier s'il y a "quelque chose" dans l'histoire .. c'est-à-dire pas vide etc ?? – user187580

+0

Il existe une propriété history.previous mais, comme le déclare JSRef, elle requiert le privilège UniversalBrowserRead. Il n'a aucune valeur si vous n'avez pas ce privilège. Pour plus d'informations sur la sécurité, reportez-vous au Guide JavaScript côté client. * – anddoutoi

9

Essayez ceci:

if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     history.back(); 
    }  
+0

peut-il être mis onclick = "return confirm ('confirm message')"; ?? – user187580

+0

L'avez vous essayé? –

+0

oui il peut être mis là, essayez-le. – Sarfraz

3
$('.clickme').click(function() { 
     if(history.length != 0) 
     { 
      if(confirm("Are you sure you want to navigate away from this page?")) 
      { 
       history.go(-1); 
      } 
     return false; 
     } 
     alert("No history found"); 
     return false; 
}); 
1
<script type="text/javascript" language="javascript"> 

function goBack() 
{ 
window.history.back() 
} 

window.onkeyup = function (e) 
{ 
if (e.keyCode == 27) window.history.back(); 
} 
</script> 

Ajouter code ci-dessus dans votre section de tête de la page. Ici, chaque fois que l'utilisateur appuie sur le bouton Esc, il sera redirigé vers la page d'affichage précédente et si nous voulons ajouter cette logique sur le bouton de retour, appuyez simplement sur goback() lors de l'événement click.

1
$('.clickme').click(function() { 
    if(history.length != 0) 
     { 
      if(confirm("Are you sure you want to navigate away from this page?")) 
      { 
       document.location.replace(document.referrer) 
      } 
     return false; 
     } 
     alert("No history found"); 
     return false; 
}); 

(Ce code dessine fortement sur la réponse de Dodswarm.)

Questions connexes