Javascript 尝试根据浏览器语言重定向时的无限循环
我现在正在学习JS,我尝试使用以下脚本根据浏览器的语言重定向访问者(如果这与“es”不同,请重定向到“en”):Javascript 尝试根据浏览器语言重定向时的无限循环,javascript,Javascript,我现在正在学习JS,我尝试使用以下脚本根据浏览器的语言重定向访问者(如果这与“es”不同,请重定向到“en”): var language = navigator.language || navigator.userLanguage; if (language.indexOf('en') > -1) { document.location.href = 'https://example.com/en/'; } 但是这个脚本导致了无限循环,
var language = navigator.language || navigator.userLanguage;
if (language.indexOf('en') > -1) {
document.location.href = 'https://example.com/en/';
}
但是这个脚本导致了无限循环,页面无法正确加载 如何处理此问题?请尝试以下操作:
window.location.href='http://example.com/en/'
简单地重定向不会更改导航器语言。因此,即使在
/en/
上,我也希望它再次尝试重定向
您可能需要:
var language = navigator.language || navigator.userLanguage;
if (language.indexOf('en') > -1 && document.location.href.indexOf('/en/') !== -1) {
document.location.href = 'https://example.com/en/';
}
显然,上面的代码是无效的,因为在url的某个地方可能会出现另一个
/en/
,但您会想到:)在url中检测/en/
怎么样,只有当它不存在时,才执行您现在正在执行的操作?“但是这个脚本正在导致无限循环”-这表明您正在运行https://example.com/en/
…你为什么要这样做?为什么?使用document
访问location对象是否会导致问题中描述的问题?是否已测试了两个版本的代码,并确认其中一个版本出现问题,但另一个版本没有?或者你只是将未经测试的随机猜测作为答案?同样的结果。那么寻找“/en/”
,以减少它与“enlighted”发生冲突的可能性呢?@davintroon True。我明白了。我将尝试不同的选项,用于/en/谢谢