2012-08-24 2 views
42

HTML5で実装されている新機能の1つに、アンカータグの属性がdownloadです。この属性の利点は、イメージなどのクライアントアプリケーション内で作成されたコンテンツ(キャンバスから変換されたものなど)をダウンロードする手段をユーザーに提供することです。HTML5の「ダウンロード」属性のサポートを検出するにはどうすればよいですか?

現在のところ、この機能のサポートは非​​常に貧弱なので、ブラウザでこの機能のサポートをどのように検出することができますか。

答えて

57

Modernizrアプローチを使用します要素を作成し、属性が定義されているかどうかを確認:簡略化され、物事を保つために

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

または短いバージョン 'var downloadAttrSupported =(document.createElement(" a ")の中の" download ")' – Andreas

+0

私はModernizr自体を含めて提案しましたが、これは1つのユースケースのためには本当に良いかもしれません。 – bakkerjoeri

+0

@AndreiOniga提案いただきありがとうございます、私は私の答えを更新しました。たぶん*(typeof a.download == 'string')*はまだ安全でしょうか? – McGarnagle

0

シングルラインif条件:downloadため

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.'); 
} 

サポート(実際のOperaではChrome 14+、Firefox 20+、IE 13+、Safari 10+、サポートなし)上記のスクリプトは、サポートされているブラウザを妨げません。

関連する問題