如何检测对HTML5“下载”属性的支持?

在HTML5中实现的新function之一是定位标记的download属性。 这个属性的好处是,它使用户能够下载在客户端应用程序中创build的内容,例如图像(例如从canvas转换而来)。

目前,对这个function的支持很差,所以我想知道如何在浏览器中检测到对这个function的支持。

使用Modernizr方法:创build元素,并检查属性是否定义:

 var a = document.createElement('a'); if (typeof a.download != "undefined") { alert('has support'); } 

单行if条件保持简化:

 if (document.createElement('a').download==undefined && e.target.hasAttribute('download')) { e.preventDefault(); console.log('Error: this is a download link, please right-click to save the file.'); } 

download属性的支持是有缺陷的(Chrome 14+,Firefox 20+,IE13 +,Safari 10+,并且在(真实)Opera中不支持。上面的脚本不会干扰支持的浏览器。