使用 JavaScript 检测浏览器语言首选项会带来挑战,特别是对于 Internet Explorer 和 Firefox 中配置的设置。虽然 Chrome 和 Safari 等浏览器具有 navigator.language 和 navigator.userLanguage 等属性,可提供对语言信息的访问,但这些属性通常无法反映特定浏览器菜单中设置的首选项。
主要问题是浏览器设置不会直接影响通过 JavaScript 访问的 navigator.language 属性。相反,它们会影响 HTTP Accept-Language 标头。不幸的是,这个标头对 JavaScript 不可用,让程序员陷入困境。
要规避此限制,可以使用 Google App Engine 脚本(http:// /ajaxhttpheaders.appspot.com)已被设计出来。此脚本通过 JSONP 检索 HTTP 请求标头并返回 Accept-Language 标头值。
// jQuery example $.ajax({ url: "http://ajaxhttpheaders.appspot.com", dataType: 'jsonp', success: function(headers) { language = headers['Accept-Language']; nowDoSomethingWithIt(language); } });
为了方便起见,包装了一个 jQuery 插件此功能可在 GitHub 上找到: https://github.com/dansingerman/jQuery-Browser-Language
以下代码是AppEngine上运行的核心逻辑:
class MainPage(webapp.RequestHandler): def get(self): headers = self.request.headers callback = self.request.get('callback')
以上是JavaScript 如何准确检测用户浏览器语言偏好?的详细内容。更多信息请关注PHP中文网其他相关文章!