Lamento hacer una pregunta tan simple con una cantidad tan pequeña de información, ¡pero no puedo resolver esto!

Tengo una página ASP.NET, en la que he agregado varios botones HTML simples que se supone que llevan al usuario a diferentes páginas. Aquí hay un ejemplo:

<button onclick="location.href='Default.aspx';">Go Back</button>

Esperaría que al hacer clic en este botón redirigiría el navegador a Default.aspx. En cambio, solo parece actualizar la página actual, manteniendo intacta la URL.

Los botones están dentro de la etiqueta

de ASP.NET en toda la página. Los botones no envían el formulario. Cuando veo el código fuente de la página en el navegador, no veo nada que deba interceptar un cambio de ubicación (como un controlador de eventos de descarga o algo así). No hay otros marcos. Realmente no hay nada destacable en esta página.

He intentado usar location=, self.location=, window.location= y location.replace(). Ninguno de ellos funciona cuando se ejecuta desde el controlador onclick del botón. He intentado en Firefox 5 y Chrome 10. El javascript funciona cuando se ejecuta desde la barra de direcciones del navegador de la siguiente manera: javascript: location.href='Default.aspx'; void(0);.

He usado el depurador de JavaScript de Firebug para intentar rastrear lo que sucede cuando hago clic en el botón, y no he visto nada inusual. No veo ningún código de interceptación de eventos u otros problemas. No hay errores registrados en la consola de errores.

Me parece que he usado guiones como el anterior y siempre ha funcionado bien. ¿Por qué no está funcionando ahora? ¿Algún código creado por ASP.NET que no conozco? ¿onclick no funciona desde <button>? ¿Es esta una rareza de seguridad de JS que comparten Chrome y Firefox?

¡Por favor ayuda, esto me está volviendo loco! Gracias.

1
Joshua Carmody 29 jun. 2011 a las 22:20

3 respuestas

La mejor respuesta

Simplemente agregue return false; así:

<button onclick="location.href='Default.aspx';return false;">Go Back</button>

Para detener el botón que envía el formulario a sí mismo.

9
Alohci 29 jun. 2011 a las 18:30

Debe usar document.location.href = "su url";

0
Troy SK 29 jun. 2011 a las 18:26

¿Intenta agregar return false al javascript onclick?

3
Can Poyrazoğlu 29 jun. 2011 a las 18:30