这行代码真的能检测HTML5支持吗



我正在处理一个现有的应用程序,遇到了以下代码行:

if (window.File && window.FileReader && window.FileList && window.Blob) {
               DoSomething();
            }

它似乎不起作用,尤其是IE。有更好的方法来检查HTML5支持吗?

"检查HTML5支持"是一个过于雄心勃勃的目标。每个用户代理都有不同级别的支持HTML的不同功能,所以这不是一个简单的包罗万象的"是的,这支持HTML5。"

事实上,你引用的代码似乎做得很好——它测试了它所需要的功能(显然是为了从操作系统中读取Blob),而不是整个通用概念。

标准是做一些像你引用的东西一样的事情,只检查你想要的功能。如果该语句返回的是假阴性,您可能需要查看处理特性检测的支持库,如modernizr。

HTML5只是一个流行语。浏览器支持各种各样的东西,我们将其归类为"HTML5"。您所拥有的代码正在进行"功能检测",以确定浏览器是否支持文件&blob API。

虽然你通常无法检测到对HTML5的完全支持,但有一个名为Modernizr的javascript库,它允许你检测HTML5和CSS3的功能支持。

最新更新