Pregunta

Estoy usando window.onback = history.forward (); para evitar que los usuarios vuelvan a enviar datos. Sé que es un hack y tampoco me gusta, pero no es de eso de lo que trata esta pregunta. El problema es que el código evita que otras páginas vuelvan a la página con el código. Déjame aclarar.

PageA.aspx tiene el código JavaScript en él. El usuario envía PageA, pulsa Atrás y no pasa nada. Eso es bueno. Ahora el usuario hace clic en un enlace a PageB.aspx, que no tiene el código. Cuando el usuario hace clic en el botón Atrás, que debería llevarla a PageA.aspx, no lo hace. Exhibe el mismo comportamiento que si PageB tuviera el código JavaScript sin respaldo.

Así es como lo tengo implementado en PageA.aspx:

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

He confirmado que este código está solo en PageA.aspx y no en el master, incluye, o cualquier otra cosa. Esta es una aplicación ASP.NET 2.0 que se ejecuta en SharePoint 2007. El navegador es IE7.

¿Alguna idea?

¿Fue útil?

Solución

No tengo el tiempo (o SharePoint07) para reproducir su entorno y escenario, pero ¿qué sucede si pone una prueba de ubicación en JavaScript?

Algo como esto:

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

No puedo explicar lo que está sucediendo, pero eso debería ayudar a limitar el alcance del hackeo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top