javascript - tab - ¿Cuál es la mejor manera de redirigir automáticamente a alguien a otra página web?
redirect javascript new tab (6)
Nunca aprendí JavaScript, pero me imagino que este es un problema bastante simple. Solo quería saber qué método es más aconsejable en estos días.
En estos días, creo que el método más recomendado es no hacer redirecciones de JavaScript (o meta). Realmente lo necesitas ? ¿Podría usar un encabezado HTTP de redireccionamiento en su lugar?
Las Pautas de Accesibilidad para el 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 deshabilite o controle la frecuencia de actualización.
La mayoría aconseja? Para no hacerlo HTTP es mucho 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.).
Fallando en eso…
Si quieres 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 Atrás no llevará al usuario a una página que inmediatamente los arroje hacia adelante.
Si realmente no desea redirigir, pero desea enviar al usuario a alguna parte en respuesta a un evento:
window.location.href = ''http://example.com/'';
Recuerde tener un respaldo no JavaScript. Un enlace suele ser la mejor opción, pero depende del contexto.
Los redireccionamientos con retraso de tiempo 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 los tienen sentados en otra pestaña mientras hacen otra cosa). Si el mensaje es lo suficientemente importante como para mostrarlo, entonces debería ser lo suficientemente importante como para dejarlo en la pantalla hasta que el usuario lo haya leído y haya hecho clic en un enlace a la página siguiente.
Una cosa importante para recordar cuando se redirige una página usando JavaScript es proporcionar siempre una redirección que no sea de JavaScript. Un enlace haría, o mejor una etiqueta <META>
, por ejemplo: <meta http-equiv="refresh" content="2;url=http://example.com">
<!-- 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>
<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>
// 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 ha dejado SO, he consolidado sus respuestas aquí.