Есть ли способ, которым я могу автоматически перенаправить людей на другую страницу в зависимости от их состояния? - PullRequest
0 голосов
/ 25 сентября 2010

Я новичок в этом и играю вокруг, мне было интересно, могу ли я автоматически перенаправить людей со целевой страницы на страницу, на которой будет информация об их состоянии.

Как и url.com/ дляurl.com/michigan.htm

Текущий код, который я нашел

    <script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesLocationCode,GeobytesCode,GeobytesInternet"></script>
<script language="Javascript">
if(typeof(sGeobytesLocationCode)=="undefined"
   ||typeof(sGeobytesCode)=="undefined"
   ||typeof(sGeobytesInternet)=="undefined")
{
   // Something has gone wrong with the variables, so set them to some default value,
   // maybe set a error flag to check for later on.
   var sGeobytesLocationCode="unknown";
   var sGeobytesCode="unknown";
   var sGeobytesInternet="unknown";
}
if(sGeobytesCode=="MI")
{
   // Visitors from Michigan would go here
   window.open("http://www.url.com/michigan.htm" , "_self");
}else if(sGeobytesInternet=="US")
{
   // Visitors from The United States would go here
   window.open("http://www.url.com/selectstate.htm");
}
</script>

Я уверен, что мне нужно сделать, чтобы добавить больше состояний в этот код, яЯ уверен, что ужин легкий, но, как я уже сказал, я новичок в этом

Спасибо

Ответы [ 2 ]

2 голосов
/ 25 сентября 2010

Я бы предложил использовать оператор switch, чтобы было легко добавлять столько состояний, сколько вы хотите.Кроме того, window.open открывает новое окно, которое может раздражать, поэтому лучше использовать window.location для перенаправления пользователя в том же окне.

Заменить это:

if(sGeobytesCode=="MI")
{
   // Visitors from Michigan would go here
   window.open("http://www.url.com/michigan.htm" , "_self");
}else if(sGeobytesInternet=="US")
{
   // Visitors from The United States would go here
   window.open("http://www.url.com/selectstate.htm");
}

с чем-то вроде этого:

switch (sGeobytesCode) {
case 'MI': window.location = 'http://www.url.com/michigan.htm'; break;
case 'AA': window.location = 'something'; break;
case 'BB': window.location = 'something else'; break;
...
default:
  if(sGeobytesInternet=="US")
  {
     // Visitors from The United States would go here
     window.location = 'http://www.url.com/selectstate.htm';
  }
  break;
}
0 голосов
/ 25 сентября 2010

попробуйте это:

<script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesLocationCode,GeobytesCode,GeobytesInternet"></script>
<script language="Javascript">
    if (typeof(sGeobytesLocationCode) == "undefined" || typeof(sGeobytesCode) == "undefined"
            || typeof(sGeobytesInternet) == "undefined") {
        // Something has gone wrong with the variables, so set them to some default value,
        // maybe set a error flag to check for later on.
        var sGeobytesLocationCode = "unknown";
        var sGeobytesCode = "unknown";
        var sGeobytesInternet = "unknown";
    }
    var statePageMap = {
        "MI": "michigan.htm",
        "OH": "ohio.htm",
        "IN": "indiana.html"
    };
    var statePage = statePageMap[sGeobytesCode];
    if (statePage != undefined) {
        // Visitors from Michigan would go here
        window.open("http://www.url.com/" + statePage, "_self");
    } else if (sGeobytesInternet == "US") {
        // Visitors from The United States would go here
        window.open("http://www.url.com/selectstate.htm");
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...