2012-08-24 92 views
42

HTML5中實現的新功能之一是錨定標記的download屬性。這個屬性的好處是它爲用戶提供了下載在客戶端應用程序中創建的內容的手段,例如圖像(例如從畫布轉換而來)。如何檢測對HTML5「下載」屬性的支持?

目前,對此功能的支持非常差,所以我想知道如何在瀏覽器中檢測對此功能的支持。

回答

57

使用Modernizr方法:創建元素,並檢查屬性被定義:

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

或者簡單的'var downloadAttrSupported =(「download」在document.createElement(「a」))' – Andreas

+0

我建議包括Modernizr本身,但如果是單個用例,這可能確實會更好。 – bakkerjoeri

+0

@AndreiOniga感謝您的建議,我更新了我的答案。也許*(typeof a.download =='string')*會更安全嗎? – McGarnagle

0

單行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中不支持。上述腳本不會干擾支持的瀏覽器。