为什么以下功能无法在Safari中检测浏览器语言?

时间:2016-05-03 06:30:09

标签: javascript safari

我使用以下功能检测浏览器的语言:

util.getBrowserLang = () => {
  return navigator.languages
    ? navigator.languages[0]
    : (navigator.language || navigator.userLanguage)
}

在Chrome和Firefox中运行正常:

enter image description here

enter image description here

但它并没有在Safari中获得语言:

enter image description here

e.g。在上面的案例中,该函数不会返回zh-TW

这是为什么?也许Safari使用其他功能来检索浏览器的语言?

1 个答案:

答案 0 :(得分:1)

首先,Safari没有navigator.languages所以三元条件的第一部分永远不会在Safari上执行。

话虽如此,我们需要看navigator.language。当我从浏览器控制台检查时,Chrome会返回'en-US'并且Safari返回'en-us'。您的语言选择器是否可能区分大小写并且未检测到小写文本?即使我无法更改我的本地化,我想它会返回'zh-tw'而不是'zh-TW'。如果它有帮助,您可以使用String原型的.toLowerCase()函数获得小写字符串。如果您选择将字符串设为小写,则需要更改选择器的代码。