2016-11-04 2 views
0

моя цель - создать скрипт, который перенаправляет пользователя с домашней страницы на соответствующую языковую страницу на основе их языка браузера, вот что у меня есть до сих пор:JavaScript window.location.replace (url) Перезагрузка Несколько раз

<script> 
    jQuery(document).ready(function() { 
     var language = window.navigator.userLanguage || window.navigator.language; 
     if (language === "en-US") { 
      window.location.replace("/test") 
     } 
    }); 
</script> 

вопрос заключается в том, что при /test загрузки страницы, он перезагружается несколько раз, прежде чем, наконец, останавливается. Пожалуйста, смотрите ниже, чтобы увидеть это в действии (работает только если язык браузера «EN-US»)

http://ts564737-container.zoeysite.com/

Может кто-нибудь, пожалуйста, посоветуйте где это происходит не так и почему место замещается несколько раз? Извиняюсь заранее, я только начал изучать кодирование. Спасибо за ваше время.

+1

я угадайте, что тот же сценарий также присутствует на странице, на которую вы перенаправляете? что приведет к бесконечному циклу, прежде чем что-то пойдет не так, и перенаправления прекратятся? вы можете попытаться определить местоположение перед перенаправлением, чтобы местоположение не было изменено, если пользователь уже находится на целевом сайте. – garglblarg

ответ

1

Поскольку ваш код завернут в jQuery(document).ready(function() { каждый раз, когда страница загружается, вызывается window.location.replace и запускается обновление страницы.

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

<select class="foo" id="bar" onchange="dropdownChange()"> //options here </select>

и ваш javscript к

function dropdownChange() { var dropdown = document.getElementById("bar"); var language = dropdown.options[dropdown.selectedIndex].value; if (language === "en-US") { window.location.replace("/test"); } }

+1

Я didn Не думайте об использовании раскрывающегося списка, но теперь вы упомянули об этом, это будет абсолютно идеально, потому что функциональность уже встроена в платформу. Я рассмотрю этот код выше, выберем ли вы раскрывающийся список вместо того, чтобы перенаправлять себя? –

+1

@ matt136 Вам нужно убедиться, что значение раскрывающегося списка установлено на значения, которые вы проверяете в инструкции if, но код приведет к тому, что страница будет обновляться после выбора другого значения. –

0

Я пробовал вашу ссылку в хроме, и я не мог видеть несколько нагрузок. Какой браузер вы используете?

+1

Это не ответ, пожалуйста, используйте раздел комментариев – Nvan

+1

Я не могу, к сожалению, у меня нет необходимых баллов :( – ashto5

+0

Прошу прощения, что я был глуп, теперь он будет работать только для «en-US». –

Смежные вопросы