Avant de commencer, jQuery est une bibliothèque JavaScript utilisée pour la manipulation DOM. Vous ne devez donc pas utiliser jQuery pour une redirection de page.
Un devis de Jquery.com:
Bien que jQuery puisse s'exécuter sans problèmes majeurs dans les anciennes versions de navigateur, nous ne testons pas activement jQuery dans celles-ci et ne résolvons généralement pas les bogues qui peuvent y apparaître.
Il a été trouvé ici:
https://jquery.com/browser-support/
Donc jQuery n'est pas une solution globale pour la compatibilité descendante.
La solution suivante utilisant JavaScript brut fonctionne dans tous les navigateurs et est depuis longtemps standard, vous n'avez donc pas besoin de bibliothèques pour la prise en charge de plusieurs navigateurs.
Cette page sera redirigée vers Google après 3000 millisecondes
<!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>
Les différentes options sont les suivantes:
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"
Lorsque vous utilisez replace, le bouton de retour ne reviendra pas à la page de redirection, comme s'il n'avait jamais été dans l'historique. Si vous souhaitez que l'utilisateur puisse revenir à la page de redirection, utilisez window.location.href
ouwindow.location.assign
. Si vous utilisez une option qui permet à l'utilisateur de revenir à la page de redirection, n'oubliez pas que lorsque vous entrez dans la page de redirection, il vous redirigera. Donc, prenez cela en considération lorsque vous choisissez une option pour votre redirection. Dans des conditions où la page ne redirige que lorsqu'une action est effectuée par l'utilisateur, alors avoir la page dans l'historique du bouton de retour sera correct. Mais si la page redirige automatiquement, vous devez utiliser replace pour que l'utilisateur puisse utiliser le bouton de retour sans être forcé de revenir à la page envoyée par la redirection.
Vous pouvez également utiliser des métadonnées pour exécuter une redirection de page comme suit.
META Refresh
<meta http-equiv="refresh" content="0;url=http://evil.com/" />
Emplacement META
<meta http-equiv="location" content="URL=http://evil.com" />
Détournement de BASE
<base href="http://evil.com/" />
De nombreuses autres méthodes pour rediriger votre client sans méfiance vers une page qu'il ne souhaite pas consulter peuvent être trouvées sur cette page (aucune d'entre elles ne dépend de jQuery):
https://code.google.com/p/html5security/wiki/RedirectionMethods
Je voudrais également souligner que les gens n'aiment pas être redirigés au hasard. Ne redirigez les personnes que lorsque cela est absolument nécessaire. Si vous commencez à rediriger des gens au hasard, ils ne reviendront plus jamais sur votre site.
Le paragraphe suivant est hypothétique:
Vous pouvez également être signalé comme un site malveillant. Si cela se produit, lorsque les utilisateurs cliquent sur un lien vers votre site, le navigateur des utilisateurs peut les avertir que votre site est malveillant. Ce qui peut également arriver, c'est que les moteurs de recherche peuvent commencer à baisser votre note si les gens signalent une mauvaise expérience sur votre site.
Veuillez consulter les consignes aux webmasters de Google concernant les redirections:
https://support.google.com/webmasters/answer/2721217?hl=en&ref_topic=6001971
Voici une petite page amusante qui vous fait sortir de la page.
<!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 vous combinez les deux exemples de pages ensemble, vous obtiendrez une boucle de redirection pour les bébés qui garantira que votre utilisateur ne voudra plus jamais utiliser votre site.