簡體   English   中英

是否可以通過 JavaScript 中的瀏覽器確定操作系統中設置的用戶區域設置的**國家/地區**?

[英]Is it possible to determine the user locale's **country** as set in the OS from the browser in JavaScript?

Web 瀏覽器是否有一個界面來訪問用戶在操作系統中設置的任何區域設置?

我可以通過用戶的 IP 地址或使用新的地理定位 API 檢測用戶當前所在的國家/地區,但我正在為旅行者編寫一個瀏覽器應用程序,因此我希望他們的當前位置通常不是他們的祖國

有什么方法可以確定瀏覽器/操作系統設置為哪個國家/地區

如果沒有,是否有任何建議向 JavaScript 添加適當的語言環境支持?

還有什么聰明的解決方法嗎? (例如,我知道我可以獲得用戶的首選瀏覽語言,但是有很多國家/地區使用相同的語言,並且很多用戶將此設置保留為默認設置而不是將其更改為他們常用的語言。)

我必須捍衛或重述 SReject 和 CodeJack 的答案,因為瀏覽語言通常包含操作系統的國家區域設置,"en-US""de-CH"

多年來,我們一直使用它來預選表格中的國家/地區,並且它在足夠多的情況下很有用。

因此,對於旅行的瑞士用戶,您將使用navigator.language.slice(-2)並獲得"CH" ,這是您問題的有效答案。

你會得到的最好的是語言:

  • navigator.language(Netscape - 瀏覽器本地化)
  • navigator.browserLanguage(特定於 IE 的瀏覽器本地化語言)
  • navigator.systemLanguage(特定於 IE - Windows 操作系統 - 本地化語言)
  • 導航器.userLanguage

由於安全問題或只是未實施,您所要求的本機是不可能的。 但是,您可以為 Windows 用戶使用 ActiveX 對象

您可以讓用戶選擇他們的首選語言、國家等,然后使用 javascript 設置一個 cookie,該 cookie 將在請求頁面時隨時發送到您的服務器

var userLocale = navigator.language or

navigator.userLanguage;

編輯唯一的其他方式是 HTML5 的 geoLocation API

http://html5demos.com/geo http://dev.w3.org/geo/api/spec-source.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM