做web浏览器都为用户在操作系统中设置的接口访问任何的区域设置?
我可以检测用户是哪个国家目前正在从他们的IP地址,或者使用新的地理位置API,但我正在写旅客浏览应用程序,所以我希望自己的当前位置往往不是他们的祖国 。
有没有什么办法,以确定哪些国家/区域设置的浏览器/操作系统设置为?
如果不是有没有适当的语言环境支持添加到JavaScript的任何建议?
此外还有什么聪明的解决方法? (例如,我知道我能得到用户的首选浏览的语言 ,但有很多它使用谁请设定为默认值,而不是将其改为自己常用的语言的用户相同的语言和丰富的国家 。)
你会得到最好的是语言:
- navigator.language(网景 - 浏览器本地化)
- navigator.browserLanguage(IE-具体 - 浏览器本地化语言)
- navigator.systemLanguage(IE-具体 - Windows操作系统 - 本地化语言)
- navigator.userLanguage
由于无论是安全问题,或只是没有实现,你所要求的是不可能的,本身。 但是,您可以使用ActiveX对象为您的Windows用户
你可以有一个用户选择他们perfered语言,国家等则使用JavaScript来设置cookie,这将被发送到你的服务器随时一个页面被请求
我要捍卫或重新状态SReject和CodeJack的答案,因为浏览器语言确实一般包含操作系统的国家语言环境中的"en-US"
或"de-CH"
。
我们已经使用了多年预先选择形式的国家,它在足够的情况下工作是有用的。
因此,与瑞士旅行,你的用户会使用navigator.language.slice(-2)
并获得"CH"
这是一个有效的回答你的问题。
var userLocale = navigator.language or
navigator.userLanguage;
编辑只有另一种方式是HTML5的地理位置API
http://html5demos.com/geo http://dev.w3.org/geo/api/spec-source.html
文章来源: Is it possible to determine the user locale's **country** as set in the OS from the browser in JavaScript?