Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试根据浏览器语言重定向时的无限循环_Javascript - Fatal编程技术网

Javascript 尝试根据浏览器语言重定向时的无限循环

Javascript 尝试根据浏览器语言重定向时的无限循环,javascript,Javascript,我现在正在学习JS,我尝试使用以下脚本根据浏览器的语言重定向访问者(如果这与“es”不同,请重定向到“en”): var language = navigator.language || navigator.userLanguage; if (language.indexOf('en') > -1) { document.location.href = 'https://example.com/en/'; } 但是这个脚本导致了无限循环,

我现在正在学习JS,我尝试使用以下脚本根据浏览器的语言重定向访问者(如果这与“es”不同,请重定向到“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/谢谢