2012-08-24 8 views
42

एचटीएमएल 5 में लागू नई सुविधाओं में से एक एंकर टैग के लिए download विशेषता है। इस विशेषता का लाभ यह है कि यह उपयोगकर्ताओं को क्लाइंट एप्लिकेशन के भीतर बनाई गई सामग्री डाउनलोड करने का माध्यम देता है, जैसे एक छवि (उदाहरण के लिए कैनवास से परिवर्तित)।एचटीएमएल 5 "डाउनलोड" विशेषता के लिए समर्थन का पता कैसे लगाया जाए?

वर्तमान में, इस सुविधा के लिए समर्थन बहुत खराब है, इसलिए मैं जानना चाहता हूं कि ब्राउज़र में इस सुविधा के लिए मैं समर्थन कैसे प्राप्त कर सकता हूं।

उत्तर

57

Modernizr दृष्टिकोण का उपयोग करें: तत्व बनाते हैं, और देखें कि क्या विशेषता परिभाषित किया गया है: 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.'); 
} 

समर्थन:

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

या लघु संस्करण 'var downloadAttrSupported = (document.createElement ("a") में "डाउनलोड") ' – Andreas

+0

मैंने आधुनिकता स्वयं को सुझाव दिया है, लेकिन यह वास्तव में बेहतर हो सकता है यदि यह एक एकल उपयोग के लिए है। – bakkerjoeri

+0

@AndreiOniga सुझाव के लिए धन्यवाद, मैंने अपना जवाब अपडेट किया। शायद * (टाइपऑफ a.download == 'string') * अभी भी सुरक्षित होगा? – McGarnagle

0

एक एकल लाइन if हालत सरलीकृत बातें रखने के लिए विशेषता स्पॉटी है (क्रोम 14+, फ़ायरफ़ॉक्स 20+, आईई 13 +, सफारी 10+ और (असली) ओपेरा में कोई समर्थन नहीं। उपरोक्त स्क्रिप्ट समर्थित ब्राउज़र में हस्तक्षेप नहीं करेगी।

संबंधित मुद्दे