如何检测对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中不支持。上面的脚本不会干扰支持的浏览器。