Question

J'utilise window.onback = history.forward (); pour empêcher les utilisateurs de soumettre à nouveau des données. Je sais que c'est un bidouillage et je ne l'aime pas non plus, mais ce n'est pas de quoi parle cette question. Le problème est que le code empêche les autres pages de revenir à la page avec le code. Permettez-moi de clarifier.

PageA.aspx contient le code JavaScript. L'utilisateur soumet PageA, frappe en arrière et rien ne se produit. C'est bon. Maintenant, l'utilisateur clique sur un lien vers PageB.aspx, qui n'a pas le code. Lorsque l'utilisateur clique sur le bouton Précédent, ce qui devrait l'amener à PageA.aspx, ce n'est pas le cas. Il présente le même comportement que si PageB avait le code JavaScript sans retour.

Voici comment je l'ai implémenté dans PageA.aspx:

<script type="text/javascript">
window.onback = history.forward();
</script>

J'ai confirmé que ce code ne figure que dans PageA.aspx et non dans le maître, les inclus ou quoi que ce soit d'autre. Il s’agit d’une application ASP.NET 2.0 exécutée dans SharePoint 2007. Le navigateur est IE7.

Des idées?

Était-ce utile?

La solution

Je n'ai pas le temps (ni SharePoint07) de reproduire votre environnement et votre scénario, mais que se passe-t-il si vous mettez un test d'emplacement dans JavaScript?

Quelque chose comme ça:

<script type="text/javascript">
if (window.location.indexOf("PageA.aspx", 0) > 0)
{
   window.onback = history.forward();
}
</script>

Je ne peux pas expliquer ce qui se passe, mais cela devrait aider à limiter la portée du piratage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top