navigator.language 何时与 navigator.languages[0] 不同?
Posted
技术标签:
【中文标题】navigator.language 何时与 navigator.languages[0] 不同?【英文标题】:When will navigator.language different to navigator.languages[0]? 【发布时间】:2019-03-30 22:56:33 【问题描述】:我正在研究浏览器指纹。在app的webview中运行的js会通过获取navigator.language.substr(0,2) == navigator.languages[0].substr(0,2)
的结果来检测用户是否在语言上撒谎。
我们发现大约 3% 的用户在语言上撒谎(navigator.language.substr(0,2) != navigator.languages[0].substr(0,2)
)。
通过 useragent,我们发现这些移动设备是:
这些用户是否在语言上撒谎?是否有任何设备或浏览器的原因会导致navigator.language.substr(0,2) != navigator.languages[0].substr(0,2)
?
【问题讨论】:
【参考方案1】:请参阅browser compatibility information。上面写着:
在 Chrome 中,
navigator.language
是浏览器 UI 的语言,不保证等于navigator.languages[0]
。在 Firefox 中,
navigator.languages
属性的值取自intl.accept_languages
首选项。
它还说 Safari 完全兼容,但也许旧版本不兼容?
【讨论】:
以上是关于navigator.language 何时与 navigator.languages[0] 不同?的主要内容,如果未能解决你的问题,请参考以下文章