Antes de comenzar, jQuery es una biblioteca de JavaScript utilizada para la manipulación DOM. Por lo tanto, no debe usar jQuery para una redirección de página.
Una cita de Jquery.com:
Si bien jQuery podría ejecutarse sin problemas importantes en las versiones anteriores del navegador, no probamos activamente jQuery en ellas y, en general, no solucionamos los errores que pueden aparecer en ellas.
Se encontró aquí:
https://jquery.com/browser-support/
Por lo tanto, jQuery no es una solución definitiva para la compatibilidad con versiones anteriores.
La siguiente solución que utiliza JavaScript sin formato funciona en todos los navegadores y ha sido estándar durante mucho tiempo, por lo que no necesita ninguna biblioteca para la compatibilidad entre navegadores.
Esta página redirigirá a Google después de 3000 milisegundos.
<!DOCTYPE html>
<html>
<head>
<title>example</title>
</head>
<body>
<p>You will be redirected to google shortly.</p>
<script>
setTimeout(function(){
window.location.href="http://www.google.com"; // The URL that will be redirected too.
}, 3000); // The bigger the number the longer the delay.
</script>
</body>
</html>
Las diferentes opciones son las siguientes:
window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL
window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"
Cuando use reemplazar, el botón de retroceso no volverá a la página de redireccionamiento, como si nunca hubiera estado en el historial. Si desea que el usuario pueda volver a la página de redireccionamiento, use window.location.href
o window.location.assign
. Si utiliza una opción que le permite al usuario volver a la página de redireccionamiento, recuerde que cuando ingrese a la página de redireccionamiento, lo redireccionará. Así que tenga esto en cuenta al elegir una opción para su redirección. En condiciones en las que la página solo se redirige cuando el usuario realiza una acción, entonces tener la página en el historial del botón Atrás estará bien. Pero si la página se redirige automáticamente, entonces debe usar reemplazar para que el usuario pueda usar el botón Atrás sin ser forzado a regresar a la página que envía la redirección.
También puede usar metadatos para ejecutar una redirección de página de la siguiente manera.
META Refresh
<meta http-equiv="refresh" content="0;url=http://evil.com/" />
META Ubicación
<meta http-equiv="location" content="URL=http://evil.com" />
Secuestro BASE
<base href="http://evil.com/" />
En esta página se pueden encontrar muchos más métodos para redirigir a su cliente desprevenido a una página a la que quizás no quiera ir (ninguno de ellos depende de jQuery):
https://code.google.com/p/html5security/wiki/RedirectionMethods
También me gustaría señalar que a las personas no les gusta que las redireccionen al azar. Solo redirige a las personas cuando sea absolutamente necesario. Si comienza a redirigir a las personas al azar, nunca más volverán a su sitio.
El siguiente párrafo es hipotético:
También puede ser informado como un sitio malicioso. Si eso sucede, cuando las personas hacen clic en un enlace a su sitio, el navegador de los usuarios puede advertirles que su sitio es malicioso. Lo que también puede suceder es que los motores de búsqueda pueden comenzar a disminuir su calificación si las personas informan una mala experiencia en su sitio.
Consulte las Directrices para webmasters de Google sobre redirecciones:
https://support.google.com/webmasters/answer/2721217?hl=es&ref_topic=6001971
Aquí hay una pequeña página divertida que te saca de la página.
<!DOCTYPE html>
<html>
<head>
<title>Go Away</title>
</head>
<body>
<h1>Go Away</h1>
<script>
setTimeout(function(){
window.history.back();
}, 3000);
</script>
</body>
</html>
Si combina los dos ejemplos de página, tendrá un ciclo de redireccionamiento que garantizará que su usuario nunca más quiera usar su sitio.