【发布时间】:2011-03-26 12:43:03
【问题描述】:
为了在应用程序中实现浏览器兼容性,我需要一个 Java 类/Bean/Jar,它将返回以下信息:
- 用户当前浏览器
- 它的名字
- 版本
- 用户的操作系统
对此的任何想法都会非常有帮助。这应该适用于所有现代浏览器的最新版本,例如 Chrome、Safari 和 Opera。我怎样才能最好地解决这个问题?
【问题讨论】:
标签: java servlets cross-browser detection
为了在应用程序中实现浏览器兼容性,我需要一个 Java 类/Bean/Jar,它将返回以下信息:
对此的任何想法都会非常有帮助。这应该适用于所有现代浏览器的最新版本,例如 Chrome、Safari 和 Opera。我怎样才能最好地解决这个问题?
【问题讨论】:
标签: java servlets cross-browser detection
由于用户代理数据对更改极为敏感,并且您希望将数据的维护委托给第 3 方,因此请考虑使用像 http://user-agent-string.info 这样的公共网络服务。他们还有一个用于 XML-RPC 服务的Java example。
您可以使用HttpServletRequest#getHeader()获取当前请求的用户代理。
String userAgent = request.getHeader("User-Agent");
将其用作网络服务的参数。
也就是说,如果你在 HTML/CSS/MSIE 领域确实有兼容性问题,你真的应该考虑conditional comments。如果在 JS 区域,请使用feature detection。您不应该依赖用户代理,当然也不应该依赖服务器端。考虑发布一个关于您认为在服务器端嗅探用户代理是解决方案的问题的新问题。你会得到更合适的答案。
【讨论】: