1 votes

Question sur les cookies et les redirections Javascript

J'ai deux scripts qui font ce que je veux, mais je dois les combiner. Fondamentalement, s'il y a un cookie pour "US" alors il laisse l'utilisateur naviguer sur le site américain. Cependant, si aucun cookie n'existe, je veux qu'il exécute la redirection géographique en fonction du lieu. Les deux fonctionnent de leur côté mais je n'arrive pas à faire en sorte qu'il fasse d'abord la partie cookie puis, si aucun cookie n'existe, qu'il exécute la redirection géographique. Toute aide serait la bienvenue. Merci.

Voici mes 2 scripts séparés :

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script>

<script language="Javascript" type="text/javascript">
<!--
function ReadCookie() {
var NameOfCookie="Language";
if(document.cookie.length > 0)
{
begin = document.cookie.indexOf(NameOfCookie+"=");
if(begin != -1)
{
// our cookie was set.
// The value stored in the cookie is returned from the function
begin += NameOfCookie.length + 1;
end = document.cookie.indexOf(";",begin);
if(end == -1) end = document.cookie.length;
language=(document.cookie.substring(begin,end));
if (language==="US")document.location.href='http://www.site.com';
}
}
}
function SetCookie(cookieName,cookieValue) {
var today = new Date();
var expire = new Date();
var nDays=365
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
//-->
</script>

<script language="Javascript" type="text/javascript">
function GetGeo() {
var country = geoip_country_code();
if(country=="GB")      
{
window.location = "http://uk.site.com"
}
else if(country=="FR")      
{
window.location = "http://fr.site.com"
}
}
</script>

Puis je fais corps onload = ReadCookie()

1voto

Pointy Points 172438

Voici un moyen beaucoup plus simple d'obtenir la valeur de votre cookie :

var language = document.cookie.replace(/.*\bLanguage=(\w+)\b.*/, "$1");
if (language == "US") document.location = whatever;

Où/quand appelez-vous réellement la fonction "GetGeo" ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X