2012-08-24 14 views
42

Una delle nuove funzionalità implementate in HTML5 è l'attributo download per i tag di ancoraggio. Il vantaggio di questo attributo è che offre agli utenti i mezzi per scaricare contenuti creati all'interno di un'applicazione client, ad esempio un'immagine (convertita da una tela, ad esempio).Come rilevare il supporto per l'attributo "download" HTML5?

Attualmente, il supporto per questa funzione è molto scarso, quindi mi piacerebbe sapere come posso rilevare il supporto per questa funzionalità in un browser.

risposta

57

utilizzare l'approccio Modernizr: creare l'elemento, e verificare se l'attributo è definito:

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

Oppure la versione breve 'var downloadAttrSupported = (" download "in document.createElement (" a "))' – Andreas

+0

Ho suggerito di includere Modernizr stesso, ma questo potrebbe effettivamente essere migliore se si tratta di un singolo caso d'uso. – bakkerjoeri

+0

@AndreiOniga grazie per il suggerimento, ho aggiornato la mia risposta. Forse * (typeof a.download == 'string') * sarebbe ancora più sicuro? – McGarnagle

0

Una singola linea if condizione di mantenere le cose semplificate:

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

supporto per il download l'attributo è macchiato (Chrome 14+, Firefox 20+, IE13 +, Safari 10+ e nessun supporto in (reale) Opera. Lo script precedente non interferirà con i browser supportati.

Problemi correlati