¿Cuál es la mejor manera de redirigir automáticamente a alguien a otra página web?

StackOverflow https://stackoverflow.com/questions/200337

  •  03-07-2019
  •  | 
  •  

Pregunta

Nunca aprendí JavaScript, pero imagino que este es un problema bastante simple. Solo quería saber qué método se recomienda más en estos días.

¿Fue útil?

Solución

// use this to avoid redirects when a user clicks "back" in their browser
window.location.replace('http://somewhereelse.com');

// use this to redirect, a back button call will trigger the redirection again
window.location.href = "http://somewhereelse.com";

// given for completeness, essentially an alias to window.location.href
window.location = "http://somewhereelse.com";

editar : parece que el usuario que publicó la mejor respuesta dejó SO, he consolidado sus respuestas aquí.

Otros consejos

¿Lo más recomendado? Para no hacerlo HTTP es lejos más adecuado para el trabajo que JavaScript ( los motores de búsqueda los siguen, puede indicar si es permanente o no, son más rápidos, etc.).

En su defecto & # 8230;

Si desea una redirección inmediata:

window.location.replace('http://example.com/');

Esto reemplazará el URI actual con el nuevo URI en el historial del navegador, por lo que el botón de retroceso no aterrizará al usuario en una página que los arroje de inmediato nuevamente.

Si realmente no desea redirigir, pero desea enviar al usuario a algún lugar en respuesta a un evento:

window.location.href = 'http://example.com/';

Recuerde tener una alternativa que no sea JavaScript. Un enlace suele ser la mejor opción, pero depende del contexto.

Las redirecciones demoradas son una idea aún peor. La única razón para usarlos es si desea mostrar un mensaje al usuario, y los usuarios leen cosas a diferentes velocidades (y hacen que se sienten en otra pestaña mientras hacen otra cosa). Si el mensaje es lo suficientemente importante como para mostrarlo, debería ser lo suficientemente importante como para dejarlo en la pantalla hasta que el usuario lo haya leído y haga clic en un enlace a la página siguiente.

Una cosa importante para recordar al redirigir una página usando JavaScript es, ¡siempre proporcione una redirección que no sea JavaScript también! Un enlace funcionaría, o mejor una etiqueta <META>, por ejemplo: <meta http-equiv="refresh" content="2;url=http://example.com">

En estos días, creo que el método más recomendado es no hacer javascript ( o meta) redirige. Realmente lo necesitas ? ¿Podría utilizar un encabezado HTTP de redireccionamiento en su lugar?

Las Pautas de accesibilidad al contenido web del W3C (7.4) también desalientan la creación de páginas de actualización automática, ya que la mayoría de los navegadores web no permiten que el usuario desactive o controle la frecuencia de actualización

Otra forma de hacerlo con archivos locales es haciendo esto

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>

<!-- begin snippet: js hide: false console: true babel: false -->

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top