Je suis en train d'écrire une application qui, si l'utilisateur recopie, peut renvoyer la même information et gâcher le flux et l'intégrité des données. Comment puis-je le désactiver pour les utilisateurs avec et sans javascript?Désactivation du bouton Précédent sur le navigateur
Répondre
Ce n'est pas possible, malheureusement. Cependant, considérez votre modèle de navigation d'applications. Utilisez-vous Post/Redirect/Get PRG Model? http://en.wikipedia.org/wiki/Post/Redirect/Get?
Ce modèle est plus sensible aux boutons de retour que le modèle Postback.
Rien de triste à ce sujet. –
Point valide. Je suis juste triste. ;) –
Scott - Est-ce que la possibilité de désactiver les barres d'outils et le menu contextuel est spécifique à IE? J'ai vu des applications LOB qui verrouillent complètement la navigation, mais (encore une fois malheureusement) ils exigent également que l'utilisateur ait IE. –
Vous ne devriez pas.
Vous pouvez attacher un script à l'événement onbeforeunload d'une page et confirmer à l'utilisateur ce qu'il veut faire; et vous pouvez aller un peu plus loin et essayez à disable it mais bien sûr cela ne fonctionnera que pour les utilisateurs qui ont javascript activé. Au lieu de cela, regardez la réécriture de l'application afin de ne pas valider les transactions sur chaque page soumise, mais seulement à la fin du processus.
Hmmm ... l'événement onbeforeunload serait appelé aussi lors de la navigation loin de la page parce que l'utilisateur va simplement à une autre page (non seulement parce que l'utilisateur a appuyé sur le bouton de retour), et le script serait appelé. –
Vous pouvez publier les données sur chaque formulaire dans une fenêtre _NEW. Cela désactivera le bouton de retour sur chaque fenêtre, mais sans javascript, il pourrait être difficile de forcer l'ancien fermé.
Voici un post précédent sur elle: Prevent Use of the Back Button (in IE)
bien, le moteur de recommandation ne l'a pas montré comme j'ai créé le post :( – Haoest
Je vous conseille vivement d'aller à des longueurs héroïques pour éviter la rupture du bouton de retour, il est un moyen sûr d'aliéner vos utilisateurs et même fait au n ° 1 sur Jacob Neilsen's Top 10 Web Design Mistakes in 1999.
Peut-être que vous pourriez envisager de plutôt poser la question: "Comment éviter de casser le bouton de retour pour < insérer votre scénario ici >?"
Si la réponse de Scott est proche de la réalité, envisagez de changer votre flux pour le modèle PRG. Si c'est autre chose, donnez un peu plus de détails et voyez comment nous pouvons vous aider.
Il n'a pas dit qu'il voulait "casser" le bouton arrière, il veut éviter un piège commun où les modèles de conception Ajax modernes échouent parce qu'un utilisateur appuie "Retour" signifiant "Annuler la chose que je viens de faire avec votre application Ajax" et au lieu obtient "Retour une requête HTTP arbitraire et ambiguë". – pcorcoran
Pour moi qui lit juste "il ne voulait pas casser le bouton arrière, il voulait juste casser le bouton arrière pour éviter qu'il soit cassé". : S Il est possible d'obtenir AJAX/JavaScript et les boutons de retour pour jouer gentil, tout ce que je suggère est que ce serait la route que je recommande de suivre. –
La meilleure option est de ne pas dépendre de postbacks pour contrôler le flux, si vous êtes coincé avec (pour l'instant)
vous pouvez utiliser quelque chose comme ceci:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.AppendHeader("Pragma", "no-cache");
Bientôt vous trouverez que il ne fonctionnera pas sur tous les navigateurs, mais vous pouvez introduire un chèque dans votre code comme:
if (Page.IsPostBack)
{
if (pageIsExpired()){
Response.Redirect("/Some_error_page.htm");
}
else {
var now = Now;
Session("TimeStamp") = now.ToString();
ViewState("TimeStamp") = now.ToString();
}
private boolean pageIsExpired()
{
if (Session("TimeStamp") == null || ViewState("TimeStamp") == null)
return false;
if (Session("TimeStamp") == ViewState("TimeStamp"))
return true;
return false;
}
cela va résoudre le problème dans une certaine mesure, le code décochée - uniquement pour les exemples pu rposes ..
4 gars de Rolla a écrit cet article sur la désactivation du bouton de retour depuis longtemps (dans une galaxie lointaine, très lointaine): http://www.4guysfromrolla.com/webtech/111500-1.shtml
Tout ce que vous venez avec pour désactiver le bouton de retour pourrait ne pas arrêter le bouton de retour dans les futurs navigateurs. Si elle est en retard dans le cycle de développement, je vous suggère d'essayer quelques suggestions ci-dessus mais quand vous avez le temps, vous devez structurer votre flux de sorte que le bouton retour n'interfère pas avec la logique de votre site, il vous ramène simplement à la page précédente comme ils l'attendent.
Je suis venu avec un petit hack qui désactive le bouton de retour en utilisant JavaScript.Je l'ai vérifié sur le chrome 10, Firefox 3.6 et IE9:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<title>Untitled Page</title>
<script type = "text/javascript" >
function changeHashOnLoad() {
window.location.href += "#";
setTimeout("changeHashAgain()", "50");
}
function changeHashAgain() {
window.location.href += "1";
}
var storedHash = window.location.hash;
window.setInterval(function() {
if (window.location.hash != storedHash) {
window.location.hash = storedHash;
}
}, 50);
</script>
</head>
<body onload="changeHashOnLoad(); ">
Try to hit back!
</body>
</html>
j'ai pu accomplir cela en utilisant:
Response.Cache.SetExpires(DateTime.MinValue);
Response.Cache.SetNoStore();
Quand je Response.Cache.SetCacheability (HttpCacheability.NoCache); cela m'a empêché de télécharger des fichiers de bureau.
Il est vrai, une validation correcte devrait être ajoutée pour s'assurer que les données en double ne gâchent pas les choses. Cependant, comme dans mon cas, je ne contrôle pas complètement les données puisque j'utilise une API tierce après mon formulaire. Donc, j'ai utilisé cette
history.go(+1);
Ceci enverra l'utilisateur avant la « réception » qui est censé venir après page « paiement » si elles essaient de revenir à la page « paiement » (juste donner un paiement par exemple) . Utilisez avec parcimonie, mais
Trouvez ci-dessous le lien
navigateur Désactiver la fonctionnalité du bouton de retour en utilisant JavaScript asp.net | ASP.Net désactiver le bouton retour du navigateur (en utilisant javascript)
http://www.aspdotnet-suresh.com/2011/11/disable-browser-back-button.html
Il est possible de désactiver le bouton de retour dans tous les principaux navigateurs. Il utilise simplement des valeurs de hachage pour désactiver complètement le bouton de retour. Il suffit de mettre ces 5 lignes de code dans votre page
<script>
window.location.hash="no-back-button";
window.location.hash="Again-no-back-button";//for google chrome
window.onhashchange=function(){window.location.hash="no-back-button";}
</script>
Tricky one..but fonctionne ... –
@Ankit: Brillant! Sauvé ma vie! Merci!!! – Emma
ne fonctionne pas correctement dans tous les cas, à savoir chrome, safari. –
- 1. AJAX et le bouton Précédent du navigateur
- 2. Comment fonctionne le bouton Précédent dans un navigateur Web?
- 3. Désactivation du bouton dans le problème AS3
- 4. Perdre des données de formulaire en cliquant sur le bouton Précédent sur le navigateur
- 5. Désactivation Retour bouton du navigateur sur Déconnexion cliquer comme Yahoo, Gmail, etc pour la sécurité
- 6. Désactivation temporisée du bouton dans pygtk
- 7. Valeurs de formulaire HTML et bouton «Précédent»
- 8. Le bouton Précédent IE6 et repost
- 9. Le bouton Précédent n'est pas rendu
- 10. C# Bouton suivant/précédent Logique
- 11. Composants Javascript désactivés non désactivés après le bouton Précédent
- 12. La désactivation du bouton de soumission d'image ne fonctionne pas
- 13. Le bouton Précédent de UINavigationItem retourne à l'élément de navigation précédent, mais l'affichage ne change pas
- 14. Comment conserver les données de formulaire lorsque l'utilisateur clique sur le bouton Précédent
- 15. Bouton de lecture dans le navigateur
- 16. Javascript: Modifier la fonction du bouton de retour du navigateur
- 17. Le bouton de retour du navigateur ne fonctionne pas dans l'environnement mis en cache
- 18. Comment contrôler les rechargements lors de l'utilisation du bouton de retour dans le navigateur?
- 19. Je veux arrêter la demande du navigateur, lorsque l'utilisateur clique sur un bouton de l'interface utilisateur, comme bouton d'arrêt sur le navigateur
- 20. Que se passe-t-il lorsque je clique sur le bouton Arrêter du navigateur?
- 21. Erreur de téléchargement de fichier sur le navigateur mac et non sur le navigateur du PC
- 22. iPhone - Changement de cible ou de sélecteur pour le bouton Précédent sur UINavigationController
- 23. Comment cacher le bouton précédent dans la première vue sur iPhone?
- 24. Texte Désactivation du champ dans NetBeans
- 25. Désactivation de la validation Request.Form sur le contrôle de bouton hérité
- 26. ASP.NET 3.5 Contrôle du bouton Précédent/Contrôle d'actualisation (jamais trouvé une solution de travail)
- 27. Comment pouvons-nous arrêter la page web après la connexion en utilisant le navigateur précédent
- 28. Bouton de désactivation avec javascript: FF vs IE
- 29. Restaurer le focus de la fenêtre sur le précédent propriétaire
- 30. Capture d'événement sur le navigateur
Si je suis sur votre site, le bouton de retour est encore MINE. Ne plaisante pas avec ce qui est à moi ... ;-) – Shog9
C'est la mauvaise question. Ce que vous devez faire est de concevoir l'application de sorte que lorsque l'information est renvoyée, l'application la reconnaîtra et agira de manière appropriée. – reinierpost