Empêcher l'Utilisation de la Touche Retour (dans IE)
De sorte que la Pme à ma place actuelle de l'emploi vouloir essayer de désactiver le bouton de retour pour certaines pages. Nous avons une page où l'utilisateur fait quelques sélections et les soumet à être traitées. Dans certains cas, ils ont pour saisir un commentaire sur une autre page.
Ce que les utilisateurs ont compris, c'est qu'ils n'ont pas à entrer un commentaire si elles soumettent l'information et de revenir à la page avec le commentaire, puis cliquez sur le bouton retour pour revenir à la page précédente.
Je sais qu'il y a plusieurs solutions à ce (et beaucoup d'entre eux sont beaucoup plus élégant de désactivation du bouton de retour), mais c'est ce que je suis à gauche avec. Est-il possible d'empêcher quelqu'un d'aller à la page précédente grâce à la modification du comportement de la touche retour. (comme un bouton -> return false sorta chose).
Grâce à un double affichage de l'information, je peux pas retourner à la page précédente et de passer ensuite à l'actuel. Je peux seulement l'ont pas direct à l'écart de la page en cours. Je l'ai Googlé, mais j'ai vu des posts disant qu'il sera toujours revenir à la page précédente. J'espérais que quelqu'un est fou de kung foo js compétences qui peuvent rendre cela possible.
Je comprends que tout le monde dit que c'est une mauvaise idée, et je suis d'accord, mais parfois vous avez juste à faire ce qu'on vous dit.
- 4GuysFromRolla a fait un examen approfondi de la "Désactivation de la Touche Retour." <4guysfromrolla.com/webtech/111500-1.shtml> je vous recommande de lire cet article, ils ont également vous dire pourquoi il ne fonctionne pas (dans tous les scénarios).
- +1 de la compassion pour les avoir à DTWT parfois.
Vous devez vous connecter pour publier un commentaire.
Ne le faites pas, ne le faites pas. C'est une mauvaise conception de l'interface et des forces le navigateur de l'utilisateur à se comporter d'une façon qu'ils n'attendent pas.
Je peux considérer tous les scripts qui a réussi à stopper mon dos bouton de travailler à un hack, et j'attendrais l'équipe IE à la libération de la sécurité, solution pour elle.
Le bouton de retour est une partie de leur programme d'interface, pas votre site web.
Dans votre cas particulier, je pense que le mieux est d'ajouter un événement de déchargement de la page qui avertit l'utilisateur si elles n'ont pas rempli le formulaire. Le bouton retour ne serait pas affecté et l'utilisateur sera averti de leur action.
Nah, vous êtes condamnés. Même si l'on ouvre la page dans un autre navigateur et se cacha le bouton de retour, il y a toujours la touche d'effacement arrière.
Le problème avec les marketeux et analyste de types, c'est que certains d'entre eux ne comprennent pas le concept fondamental du web apatrides. Ils ne comprennent pas que la page est totalement, totalement inconscient du navigateur à l'aide et de contrôle absolu du navigateur est totalement en dehors de la capacité des pages web.
La meilleure façon d'empêcher vos utilisateurs de frapper le bouton de retour est de s'assurer que votre page perd tous ses données lorsqu'ils appuient sur le dos, par exemple, la page de commentaires est le seul point où les données peuvent être sauvegardées, et s'ils le font appuyez sur le bouton de retour qu'ils ont à faire tout tout recommencer (penser le long des lignes de pragma: nocache).
Les utilisateurs se plaignent, bien sûr, mais ils sont la raison d'être abandonné cette exigence existe, non?
J'ai vu cela:
Il est très certainement un sale hack et, si possible, je voudrais tenter de ne pas désactiver le bouton de retour. Et l'utilisateur peut probablement toujours contourner assez facilement. Et en fonction de la mise en cache, il est impossible de dire si le code du serveur va être traitées, ou si la mise en cache de la page avec JavaScript, exécuter en premier.
Donc, oui, utilisez à vos risques et périls 🙂
window.onback = history.forward;
, (l'appel de la fenêtre.quand laonback
événement se déclenche - qui ne fonctionne pas, comme il n'y a pas deonback
de l'événement). Le code ne fonctionne toujours comme aussi appel àhistory.forward()
, qui l'envoie à l'utilisateur de retourner à la page qu'il était avant de cliquer sur le bouton de retour...Je suis venu avec un petit hack qui désactive le bouton de retour à l'aide de JavaScript. Je l'ai vérifié sur google chrome 10, firefox 3.6 et IE9:
Avez-vous accès à du côté serveur, le code source? Si oui, vous pouvez exercer un contrôle sur la première page qui redirige vers la deuxième page si l'information a été soumis déjà (vous aurez besoin d'utiliser les sessions pour cela, bien évidemment). À un ancien emploi, c'est la façon dont nous avons traité multi-étape applications (application comme dans la demande d'acceptation).
Pourriez-vous vous déplacez le commentaire à la page précédente et de le rendre un champ obligatoire n'?
La désactivation de la touche retour ne fonctionnera pas.
En raison de l'isolement de sécurité de javascript dans le navigateur, vous ne pouvez pas changer ce que le bouton retour ne.
Peut-être que vous pouvez mettre quelque chose dans la session de l'utilisateur qui indique qu'un commentaire est nécessaire, et avoir n'importe quelle page de l'application que l'utilisateur essaie de charger rediriger vers la page de commentaires?
Que si l'utilisateur ferme son navigateur lorsqu'il/elle obtient tot il page de commentaires?
Je sais que vous n'avez pas été un choix ici, mais comme ce qu'ils demandent pour semble impossible...
Peut-être vous pouvez simplement pas compte de la poste est complet jusqu'à ce que l'utilisateur entre dans les commentaires. Ainsi, vous devez garder une trace de tous les deux en cours des éléments et des éléments terminés, et de faire cette distinction dans l'INTERFACE utilisateur, mais c'est peut-être le plus robuste de la méthode.
Ou il suffit de mettre le champ "commentaire" sur la page de formulaire?
Alors qu'ils sont probablement également assez intelligent pour le type "pas de commentaire" dans le champ commentaires.
Vous pouvez essayer de forcer les gens à ajouter des commentaires, mais vous aurez probablement juste à la fin avec le mauvais logiciel inutilisable, agacé les utilisateurs, et toujours pas obtenir des commentaires. C'est généralement un bon moment pour prendre du recul et de revoir ce que vous faites à partir du point de vue des utilisateurs.
La désactivation de la touche retour semble une sorte de "force brute" approche.
Une autre option serait que vous pourriez sauter à une boîte de dialogue modale qui n'ont pas de boutons de commande, de guider les utilisateurs à travers le flux de travail, et fermer la boîte de dialogue lorsque le processus est terminé.
Vous devez sécuriser votre application contre la double soumission au lieu de la rupture de l'interface utilisateur de masquer le bug.
Il n'ya tout simplement aucun moyen fiable de le faire. Vous ne pouvez pas garantir à 100% du temps, vous pouvez empêcher l'utilisateur de faire ce.
Avec cela à l'esprit, est-il la peine d'aller très exotique solutions pour désactiver le "plus" de temps en temps? C'est à vous de décider.
Bonne chance.
COMME une solution simple: essayer celui-ci. Insérer un panneau de mise à jour et un bouton de là et d'utiliser javascript pour la masquer, puis appuyez sur le chargement de la page. Oui, je comprends qu'il sera la cause de votre page pour après revenir à la charge et peut ne pas fonctionner si le javascript est désactivé, mais ne sera certainement vous aider à atteindre une demi-réponse décente à l'arrière bouton de problème. Andy
Vous pouvez les empêcher de revenir à la page précédente.
location.replace()
remplace l'actuelle page de l'histoire de l'entrée d'une nouvelle page, donc...page1.html: l'utilisateur clique sur un lien qui mène à page2.html
page2.html: l'utilisateur clique sur un lien qui appelle
location.replace('page3.html');
page3.html: l'utilisateur clique sur bouton de retour et va à page1.html
Cela peut s'adaptent pas bien à faire un POST, mais vous pouvez afficher les données d'un service web via AJAX, puis d'appeler emplacement.replace()
Si vous êtes le démarrage d'une nouvelle application web à partir de zéro, ou si vous avez assez de temps pour retravailler votre application, vous pouvez utiliser JavaScript et AJAX pour éviter l'historique du navigateur, à l'arrière et l'avant de fonctions.
Cette technique répond à la question, mais il est aussi en contradiction avec les meilleures pratiques de plusieurs façons:
Veuillez examiner attentivement vos besoins et vos utilisateurs avant d'utiliser cette technique.
Je ne vois pas cette solution :
JS: