8
votes

Comment modifier la fonctionnalité du bouton arrière du navigateur similaire à des sites de commerce électronique dans ASP.NET

J'ai une application Web, dans laquelle la fonctionnalité du bouton arrière du navigateur doit être personnalisée. C'est comme si chaque fois que nous cliquons sur le bouton arrière du navigateur, il devrait nous amener à la page d'atterrissage (page de connexion), il devrait afficher un message d'erreur indiquant que 'session a expiré. Veuillez vous connecter à nouveau '.

J'ai parcouru tant de poteaux et même dans un débordement de pile aussi, j'ai vu peu de messages. Mais rien n'a fonctionné pour moi. L'approche de script Java J'utilise comme solution de contournement temporaire. Ce JavaScript nous permet de ne jamais revenir en arrière. Au lieu de cela, cela nous gardera dans la même page. JavaScript j'ai utilisé

3 Réponses :


11
votes

Réponse courte: vous ne pouvez pas
Un peu plus longtemps: vous ne devriez même pas essayer.

Mais si vous insistez: Un examen approfondi de "désactiver le bouton arrière". (à partir de 2000, mais puisque c'est ASP, je suppose toujours valable pour vous :)

Newer Dot Net: restreindre L'utilisateur retourne à la page précédente après la signature

Ignorer les Les navigateurs plus anciens ne prennent pas en charge l'emplacement.replace - IE3.2 n'est pas considéré plus ancien plus mais ancien.


2 commentaires

+1 Il existe des façons simples d'irriter des utilisateurs que cela, alors pourquoi faire l'effort supplémentaire. Peut-être que l'OP pourrait nous dire ce qu'ils veulent réaliser en désactivant le bouton arrière, comme il peut y avoir une approche qui ne gâche pas autant l'expérience de l'utilisateur.


@Jon - C'est simple: tout ce qui met à jour des trucs dans votre base de données que vous ne souhaitez pas répéter. Depuis l'aube d'Internet, des applications ont été créées qui ne l'ont pas gardé à l'esprit et ne l'avaient pas construit dans l'application pour commencer. Il est bien sûr beaucoup plus facile de penser aux moyens d'arrêter le comportement indésirable que de faire face à vos situations de votre application dans lesquelles il se produit. C'est une façon très normale, bien que grêle de traiter un visiteur. TH THI BUTT BOUTON ET Comment fermer la fenêtre du navigateur DANS MON TOP 10 FAQ depuis 1996. Je suis tout à fait d'accord: NE PAS gâcher avec le navigateur de quelque manière que ce soit.



2
votes

Pour cela - vous auriez besoin d'une solution personnalisée et de désactiver le bouton arrière ne vous aidera pas ...

Généralement, vous ne devriez pas essayer de changer le comportement du bouton arrière. Mais comme c'est l'exigence, je suggérerais ce qui suit:

approche 1:

Ceci appelle à la création d'un cadre de navigation dans lequel vous savez quelle page est la page actuelle du flux ... Cela n'est possible que si vous une séquence dans laquelle les pages seront appelées (comme un assistant)

approche 2:

spécifique à votre cas: Vous pouvez utiliser JQuery / JavaScript pour vous identifier si le bouton Retour est cliqué. Si vous pouvez alors faire un appel AJAX au serveur pour tuer la session, puis rediriger l'utilisateur à la page de connexion. < / p>


0 commentaires

0
votes

Vous pouvez manipuler de manière programmable l'histoire du navigateur en utilisant quelque chose comme ceci: fenêtre.history.back (); fenêtre.history.forward (); fenêtre.history.go (2); c.

Dans les navigateurs modernes prêts à HTML5, tels que Chrome, vous pouvez également faire des choses plus avancées, notamment la fonctionnalité de bouton arrière de l'arrière de remplacement à l'aide d'historique.Pushstate () et d'historique.ReplaState (). (https://developer.mozilla.org/fr/dom/manipulant_the_browser_history)

Vous pouvez également aller salir et utiliser des appels JavaScript + Ajax pour réagir spécifiquement aux événements du bouton arrière, mais cela ne fonctionnera pas non plus sur certains navigateurs. Ce que vous demandez, ce n'est pas une partie natale d'un Web, donc peu importe ce que vous déciderez d'utiliser à la fin, il ne sera pas très facile ou largement pris en charge.


0 commentaires