Как прервать оператор if / else в JavaScript, если условие выполнено - PullRequest
0 голосов
/ 01 июля 2019

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

Код установлен в отдельном файле и включен только на страницу en-US, код является автономным и не использует никаких функций.

if(userLang == "en-US"){
  window.location.href = "domainame.com/faq.html";
}
else if(userLang == "nl"){
  window.location.href = "domainame.com/faq-de.html";
}
else if(userLang == "fr"){
  window.location.href = "domainame.com/faq-fr.html";
}
else if(userLang == "es-ES"){
  window.location.href = "domainame.com/faq-es.html";
}
else if(userLang == "ja"){
  window.location.href = "domainame/faq-ja.html";
}

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

1 Ответ

1 голос
/ 01 июля 2019

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

Примерно так:

let lanPage = '';
if(userLang == "en-US"){
  lanPage = "https://domainame.com/faq.html";
} else if(userLang == "nl"){
  lanPage = "https://domainame.com/faq-de.html";
} else if(userLang == "fr"){
  lanPage = "https://domainame.com/faq-fr.html";
} else if(userLang == "es-ES"){
  lanPage = "https://domainame.com/faq-es.html";
} else if(userLang == "ja"){
  lanPage = "https://domainame/faq-ja.html";
}

if(lanPage && lanPage !== location.href) {
  location.href = lanPage;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...