2012-08-24 9 views
42

Una de las nuevas funciones implementadas en HTML5 es el atributo download para las etiquetas de anclaje. El beneficio de este atributo es que brinda a los usuarios los medios para descargar contenido creado dentro de una aplicación cliente, como una imagen (convertida de un lienzo, por ejemplo).¿Cómo detectar la compatibilidad con el atributo HTML5 de "descarga"?

Actualmente, el soporte para esta función es muy pobre, por lo que me gustaría saber cómo puedo detectar compatibilidad con esta característica en un navegador.

Respuesta

57

utilizar el enfoque Modernizr: crear el elemento, y comprobar si se ha definido el atributo:

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

O la versión corta 'var downloadAttrSupported = (" download "en document.createElement (" a "))' – Andreas

+0

Sugerí que se incluyera Modernizr, pero esto podría ser mejor si es para un solo uso. – bakkerjoeri

+0

@AndreiOniga gracias por la sugerencia, actualicé mi respuesta. Tal vez * (typeof a.download == 'string') * sería aún más seguro? – McGarnagle

0

Una sola línea if condición de mantener las cosas simplificadas:

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

Apoyo a la download El atributo es irregular (Chrome 14+, Firefox 20+, IE13 +, Safari 10+ y ningún soporte en Opera (real). El script anterior no interferirá con los navegadores compatibles.

Cuestiones relacionadas