Comment désactiver le bouton RETOUR du navigateur (sur tous les navigateurs)?
asp.net
javascript
priyanka.sarkar
la source
la source
Réponses:
Cette question est très similaire à celle- ci ...
Vous devez forcer l'expiration du cache pour que cela fonctionne. Placez le code suivant sur votre code de page derrière.
la source
Ne désactivez pas le comportement attendu du navigateur.
Faites en sorte que vos pages gèrent la possibilité que les utilisateurs reviennent d'une page ou deux en arrière; n'essayez pas de paralyser leur logiciel.
la source
J'ai trouvé un petit hack qui désactive le bouton de retour en utilisant JavaScript. Je l'ai vérifié sur Chrome 10, Firefox 3.6 et IE9:
Qu'est-ce que ça fait?
Des commentaires:
Ce script exploite le fait que les navigateurs considèrent ce qui vient après le signe «#» dans l'URL comme faisant partie de l'historique de navigation. Voici ce qu'il fait: lorsque la page se charge, "# 1" est ajouté à l'URL. Après 50 ms, le "1" est supprimé. Lorsque l'utilisateur clique sur "retour", le navigateur modifie l'URL à ce qu'elle était avant la suppression du "1", MAIS - c'est la même page Web, le navigateur n'a donc pas besoin de recharger la page. - Yossi Shasho
la source
D'autres ont choisi de dire «ne faites pas ça», mais cela ne répond pas vraiment à la question de l'affiche. Supposons simplement que tout le monde sache que c'est une mauvaise idée, mais nous sommes curieux de savoir comment cela se fait de toute façon ...
Vous ne pouvez pas désactiver le bouton de retour sur le navigateur d'un utilisateur, mais vous pouvez le faire pour que votre application s'arrête (affiche un message d'erreur, obligeant l'utilisateur à recommencer) si l'utilisateur revient en arrière.
Une approche que j'ai vue pour faire cela consiste à transmettre un jeton sur chaque URL dans l'application et dans chaque formulaire. Le jeton est régénéré sur chaque page, et une fois que l'utilisateur charge une nouvelle page, tous les jetons des pages précédentes sont invalidés.
Lorsque l'utilisateur charge une page, la page ne s'affiche que si le jeton correct (qui a été donné à tous les liens / formulaires sur la page précédente) lui a été transmis.
L'application bancaire en ligne fournie par ma banque est comme ça. Si vous utilisez le bouton de retour du tout, plus aucun lien ne fonctionnera et aucun rechargement de page ne pourra être effectué - à la place, vous voyez un avis vous indiquant que vous ne pouvez pas revenir en arrière et que vous devez recommencer.
la source
Alors que je cherche moi-même la réponse, la "meilleure pratique" est ... obsolète ... tout comme les navigateurs le sont (les navigateurs sont vraiment des fossiles laids)
La solution la meilleure / la plus sûre serait que les navigateurs implémentent une méthode / requête où l'utilisateur peut accorder à la page la capacité de contrôler l'interface.
Pourquoi? Parce que pour mon projet actuel, je construis une interface 100% JavaScript construite et contrôlée. Et les boutons de retour n'ont pas leur place dans mon projet car il n'y a pas de changement de page. (Ie sanglant rapide et pas de page-clignote à cause d'un rafraîchissement .. Tout comme une vraie application!)
Je sais pourquoi la capacité de "highjack" l'interface n'est pas là, et je la comprends. Mais au moins, nous devrions avoir la possibilité de le demander au navigateur! Maintenant, ce serait vraiment la «meilleure pratique» sans les dangers du highjack.
Mais les navigateurs étant des navigateurs .. Je ne m'attends pas à ce que quelque chose de sortant se produise à cet égard.
la source
Je cherchais la même question et j'ai trouvé le code suivant sur un site. J'ai pensé à le partager ici:
Cependant, comme indiqué par les utilisateurs ci-dessus, ce n'est jamais une bonne pratique et doit être évité pour toutes les raisons.
la source
Si vous comptez sur la technologie côté client, elle peut être contournée. Javascript peut être désactivé, par exemple. Ou l'utilisateur peut exécuter un script JS pour contourner vos restrictions.
Je suppose que vous ne pouvez le faire qu'en effectuant un suivi côté serveur de la session utilisateur et en redirigeant (comme dans Server.Transfer, pas Response.Redirect) l'utilisateur / navigateur vers la page requise.
la source
la source
Il y a eu quelques implémentations différentes. Il existe une solution flash et des solutions iframe / frame pour IE. Regarde ça
http://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps
BTW: Il existe de nombreuses raisons valables pour désactiver (ou au moins empêcher une étape) un bouton de retour - regardez gmail comme un exemple qui implémente la solution de hachage décrite dans l'article ci-dessus.
Google "Comment ajax a cassé le bouton de retour" et vous trouverez de nombreux articles sur les tests utilisateur et la validité de la désactivation du bouton de retour.
la source
J'ai également eu le même problème, utiliser cette fonction de script Java sur la balise head ou dans, son fonctionnement à 100% bien, ne vous laisserait pas revenir en arrière.
la source
Essayez ce code. A travaillé pour moi. Il change fondamentalement le hachage dès que la page se charge, ce qui change la page d'historique récent en ajoutant "1" sur l'URL. Ainsi, lorsque vous appuyez sur le bouton de retour, il redirige vers la même page à chaque fois.
la source
Vous devriez utiliser des publications avec des expirations et des en-têtes de mise en cache appropriés.
la source
Au lieu d'essayer de désactiver le bouton de retour du navigateur, il est préférable de le prendre en charge. .NET 3.5 peut très bien gérer les boutons Précédent (et Suivant) du navigateur. Recherche avec Google: "Scriptmanager EnableHistory". Vous pouvez contrôler quelles actions utilisateur ajouteront une entrée à l'historique du navigateur (ScriptManager -> AddHistoryPoint) et votre application ASP.NET reçoit un événement chaque fois que l'utilisateur clique sur les boutons Précédent / Suivant du navigateur. Cela fonctionnera pour tous les navigateurs connus
la source
Globalement, la désactivation du bouton de retour est en effet une mauvaise pratique. Mais, dans certaines situations, la fonctionnalité du bouton de retour n'a pas de sens.
Voici un moyen d'éviter toute navigation indésirable entre les pages:
Première page (fichier
top.php
):Page secondaire (fichier
secondary.php
):L'effet est de permettre la navigation de la première page vers la page secondaire et vers l'arrière (par exemple Annuler) en utilisant vos propres liens. Mais, après le retour à la page supérieure, le bouton de retour du navigateur ne peut pas accéder à la page secondaire.
la source
Même moi, je faisais face à la même situation avant ... et je n'avais aucune aide. essayez ces choses peut-être que cela fonctionnera pour vous
dans la
<head>
balise de la page de connexion :dans le bouton de déconnexion, j'ai fait ceci:
et sur la page de connexion, j'ai mis l'accent sur la zone de texte Nom d'utilisateur comme ceci:
j'espère que cela aide ... :) quelqu'un plz m'apprend comment modifier cette page ...
la source
SI vous avez besoin de supprimer en douceur les touches de suppression et de retour arrière dans votre application Web, de sorte que lorsqu'elles modifient / suppriment des éléments, la page ne soit pas redirigée de manière inattendue, vous pouvez utiliser ce code:
la source
Essayez ce code. Vous avez juste besoin d'implémenter ce code dans la page maître et cela fonctionnera pour vous sur toutes les pages
la source
Le problème avec Yossi Shasho code de est que la page défile vers le haut toutes les 50 ms. J'ai donc modifié ce code. Maintenant, il fonctionne bien sur tous les navigateurs modernes, IE8 et au-dessus
la source
Cela semble avoir fonctionné pour nous.
la source
la source