是否有可靠的方法从用户代理字符串中检测此类浏览器功能?
答案 0 :(得分:1)
HTML5不是服务器端语言。
无论如何,没有办法可靠地检测UA功能,例如他们可以关闭Javascript,安装插件等等。
您可以使用某些SS方法,例如PHP's Browser Detect,但除此之外,您无法做到这一点。但这根本不是全面的!
这样的所有内容都应该在Javascript中完成客户端,因为您可以轻松地检测到可用内容和不可用内容。有很多库可以做到这一点,但是如果你知道你想要什么就自己做很简单,所以不应该真的需要。此外,您永远不应该基于用户代理字符串执行此操作,正如我之前提到的那样,可以修改行为等可用的插件。您应该确切地检查您希望使用的功能而不是限制你自己到某个版本的浏览器。
答案 1 :(得分:1)
不可靠 - 您不得不从用户代理字符串中找出浏览器版本,并维护哪些浏览器版本支持API的列表。
但是,您可以使用JavaScript在客户端检测它:
然后通过JavaScript进行重定向(即通过设置window.location
)让服务器知道API是否可用。这是重定向到以#
开头的网址的常用方法(根据您对rudi_visser’s answer的评论。
答案 2 :(得分:0)
这不是服务器端(所以它可能没有回答你的问题,我认为它会有所帮助):
你看过Modernizr
吗?这是您在HTML页面中包含的javascript文件。然后,您可以使用其属性来检测浏览器是否支持特定的HTML 5标记。