Использование If / then JavaScript для перенаправления страницы «а», которая разделяет шаблон со страницей «б» - PullRequest
0 голосов
/ 04 января 2012

У меня есть две страницы, использующие один и тот же шаблон, и теперь мне нужна одна страница для перенаправления на другую. Проблема в том, что у меня есть доступ только к одному шаблону, но не к двум страницам. Это означает, что я должен установить оператор if / else в шаблоне для выполнения перенаправления. Имейте в виду, я очень зеленый, но я пытался получить следующий код, чтобы сделать трюк ... безуспешно.

var uri = location.href;

if(uri == 'http://URL-A.com')  {

} else {
    window.location = "http://URL-B.com";
};

Ответы [ 3 ]

0 голосов
/ 04 января 2012

В идеале вы бы перенаправили HTTP вместо использования JavaScript.Но если это не вариант, вот проблема с вашим примером:

if(uri==http://URL-A.com) // Don’t do this

URL должен иметь кавычки, чтобы сделать его строкой.Вы также можете использовать оператор !=, чтобы немного очистить код.И, как правило, является лучшей практикой, чтобы сказать window.location вместо просто location для ясности, даже если они обычно одинаковы.Вам также не нужна точка с запятой в конце блока:

if (window.location.href != "http://URL-A.com") {
    window.location = "http://URL-B.com";
}

Если это не работает для вас, происходит что-то еще.

0 голосов
/ 04 января 2012

Это будет работать:

<script>
    if (location.href !== 'http://URL-A.com') {
        location = 'http://URL-B.com';
    }
</script>
  • Вы можете использовать window.location или document.location в зависимости от того, что вы хотите.
  • Ваш if / else не нужен, так как вы можете использовать сравнение не равное.
  • Вы должны использовать === или !==, чтобы избежать приведения типов.
0 голосов
/ 04 января 2012

Чтобы сравнить URL со строкой, сначала необходимо убедиться, что document.location является строкой, а не объектом 1 , а затем вам нужно заключить в кавычки строку, с которой вы сравниваете:

var uri = document.location.href;

if(uri == "http://URL-A.com") 
    // not sure what's happening here
}
else {
    window.location="http://URL-B.com";
}
  1. Как отмечает Сидникий , в комментариях document.location - это объект, а document.location.href - строка;факт, который полностью ускользнул от меня, когда я впервые написал этот ответ.С поправкой.
...