Quel est le meilleur moyen de rediriger automatiquement quelqu'un vers une autre page Web?

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

  •  03-07-2019
  •  | 
  •  

Question

Je n'ai jamais appris JavaScript, mais j'imagine que c'est un problème assez simple. Je voulais juste savoir quelle méthode était la plus recommandée de nos jours.

Était-ce utile?

La solution

// 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";

modifier : on dirait que l'utilisateur qui a posté la meilleure réponse a quitté SO, j'ai consolidé ses réponses ici.

Autres conseils

Le plus conseillé? Pour ne pas le faire. Le protocole HTTP est de loin mieux adapté au travail que le code JavaScript ( les moteurs de recherche les suivent, vous pouvez indiquer si elle est permanente ou non, elles sont plus rapides, etc.).

Si cela échoue & # 8230;

Si vous souhaitez une redirection immédiate:

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

Ceci remplacera l'URI actuel par le nouvel URI de l'historique du navigateur, de sorte que le bouton Précédent ne fera pas atterrir l'utilisateur sur une page qui le renvoie immédiatement à nouveau.

Si vous ne voulez pas vraiment rediriger, mais voulez envoyer l'utilisateur quelque part en réponse à un événement:

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

N'oubliez pas d'avoir une solution de secours non JavaScript. Un lien est généralement la meilleure option, mais cela dépend du contexte.

Les redirections différées sont une idée encore pire. La seule raison de les utiliser est si vous souhaitez afficher un message à l'utilisateur - et que les utilisateurs lisent les choses à différentes vitesses (et les placent dans un autre onglet pendant qu'ils font autre chose). Si le message est suffisamment important pour être affiché, il devrait l'être suffisamment avant de le laisser à l'écran jusqu'à ce que l'utilisateur l'ait lu et cliqué sur un lien vers la page suivante.

Une chose importante à retenir lors de la redirection d'une page à l'aide de JavaScript est de toujours fournir également une redirection non-JavaScript! Un lien ferait, ou mieux une balise <META>, par exemple: <meta http-equiv="refresh" content="2;url=http://example.com">

Ces jours-ci, je pense que la méthode la plus conseillée est de ne pas utiliser javascript ( ou méta) redirections. En avez-vous vraiment besoin ? Pourriez-vous utiliser un en-tête HTTP de redirection à la place?

Les directives pour l'accessibilité aux contenus Web du W3C (7.4) découragent également la création de pages à rafraîchissement automatique, car la plupart des navigateurs Web n'autorisent pas l'utilisateur à désactiver ou à contrôler le taux d'actualisation.

Une autre façon de le faire avec des fichiers locaux est de le faire

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top