【问题标题】:Would this line of code really work for detecting HTML5 support?这行代码真的可以检测 HTML5 支持吗?
【发布时间】:2013-07-29 14:49:47
【问题描述】:
我正在开发一个现有的应用程序并遇到以下代码行:
if (window.File && window.FileReader && window.FileList && window.Blob) {
DoSomething();
}
它似乎不起作用,尤其是在 IE 中。有没有更好的方法来检查 HTML5 支持?
【问题讨论】:
标签:
javascript
asp.net
html
【解决方案1】:
“检查 HTML5 支持”是一个过于雄心勃勃的目标。每个用户代理对 HTML 不同特性的支持程度不同,所以不是简单的包罗万象的“是的,这支持 HTML5”。
事实上,您引用的代码似乎做得很好 - 它测试了它需要的功能(显然是为了从操作系统读取 blob),而不是针对整个通用概念。
标准是执行您引用的操作,并且只检查您想要的功能。如果该语句返回假阴性,您可能需要查看处理特征检测的支持库,例如 modernizr。
【解决方案2】:
HTML5 只是一个流行词。浏览器支持不同的事物矩阵,我们将其归类为“HTML5”。您拥有的代码正在对浏览器是否支持文件和 blob API 进行“功能检测”。
【解决方案3】:
虽然您通常无法检测到完整的 HTML5 支持,但有一个名为 Modernizr 的 javascript 库,可让您通过功能检测 HTML5 和 CSS3 支持。