我需要根据浏览器的语言将用户重定向到另一个页面.例如:如果浏览器的语言english重定向到site.com/en/.
我尝试这样做:
$(document).ready(function () {
var userLang = navigator.language || navigator.userLanguage;
switch (userLang) {
case 'en':
window.location.href = window.location.origin + '/en';
break;
case 'de':
window.location.href = window.location.origin + '/de';
break;
default:
break;
}
});
Run Code Online (Sandbox Code Playgroud)
这是有效的,但页面不断重新加载.如何解决或提示另一种解决方案?
该页面会不断重新加载,因为您没有检查用户是否已经位于正确的语言网站上。
在您的页面上,您可以为服务器端生成的页面语言存储一个 javascript 变量。例如:
var thisLanguage = 'en';
Run Code Online (Sandbox Code Playgroud)
然后更改您的 javascript 逻辑以考虑到这一点,并且仅在用户的语言不同于以下内容时才应用重定向thisLanguage:
$(document).ready(function () {
var userLang = navigator.language || navigator.userLanguage;
if (userLang != thisLanguage){
switch (userLang) {
case 'en':
window.location.href = window.location.origin + '/en';
break;
case 'de':
window.location.href = window.location.origin + '/de';
break;
default:
break;
}
}
});
Run Code Online (Sandbox Code Playgroud)