佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > HTML5中的強(qiáng)制下載屬性download使用實(shí)例解析

HTML5中的強(qiáng)制下載屬性download使用實(shí)例解析

熱門(mén)標(biāo)簽:百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 智能手機(jī) 網(wǎng)站建設(shè) 檢查注冊(cè)表項(xiàng) 硅谷的囚徒呼叫中心 美圖手機(jī) 使用U盤(pán)裝系統(tǒng) 阿里云

HTML5 的 Download 屬性用來(lái)強(qiáng)制瀏覽器下載對(duì)應(yīng)文件,而不是打開(kāi)。Chrome 和 Firefox 等瀏覽器太過(guò)于強(qiáng)大,也許是為了增強(qiáng)用戶(hù)體驗(yàn),當(dāng)用戶(hù)點(diǎn)擊的資源文件可以被它們識(shí)別的時(shí)候(例如 pdf 會(huì)直接在瀏覽器打開(kāi),mp3、mp4 等媒體直接用瀏覽器內(nèi)置播放器播放)。但有時(shí)候,用戶(hù)其實(shí)是希望直接下載而不是在瀏覽器上看看,這時(shí)就可以加上這個(gè)屬性,屬性值會(huì)對(duì)下載的文件重命名:
<a href="downloadpdf.php" download="download.pdf">點(diǎn)擊直接下載并保存成 download.pdf 文件</a>
如果你確定這個(gè)資源是用戶(hù)肯定會(huì)下載的,就可以加上這個(gè)屬性,還可以用 JS 或者手動(dòng)改變想要保存的文件名。
在html里創(chuàng)建一個(gè)是下載鏈接是方便的,添加一個(gè)<a>標(biāo)簽和指向文件的href屬性就行了。但是某些文件不會(huì)被下載(比如圖像,pdf,txt,doc),相反,他們會(huì)在瀏覽器中被打開(kāi)。
如果你的站點(diǎn)是有服務(wù)器端的,你可以通過(guò)配置.htaccess文件來(lái)使得那些文件可以被下載。如果你的站點(diǎn)是被WordPress.com或者github頁(yè)面托管的(靜態(tài)頁(yè)面),那么輕考慮使用<a>標(biāo)簽的download屬性

使用“Download”屬性
download屬性是html5規(guī)范的一部分,它表現(xiàn)為一個(gè)下載鏈接,而不是一個(gè)導(dǎo)航的鏈接。
download屬性也允許你去重命名一個(gè)需要下載的文件。比如,一個(gè)文件存放在服務(wù)器上,如果這個(gè)文件是自動(dòng)生成的,一般來(lái)說(shuō)它被都命名為一個(gè)系統(tǒng)的數(shù)字和破折號(hào)的組合,例如acme-doc-2.0.1.txt,我們可以重命名這個(gè)下載文件的名字,用戶(hù)下載后看到的文件名可以是一個(gè)比較好的名字,例如Acme Documentation (ver. 2.0.1).txt,像這樣增加用戶(hù)體驗(yàn)(不要忘記文件的拓展名)。

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <a href="downloadpdf.php" download="download.pdf">點(diǎn)擊直接下載并保存成 download.pdf 文件</a>  

可以看一下這個(gè)demo地址:http://tutsplus.github.io/download-attribute/index.html

一些注意:
Firefox考慮到安全問(wèn)題,該下載文件必須是從自己的服務(wù)器或域名中的,否則將在瀏覽器中打開(kāi)。
在Chrome和Opear中,如果說(shuō)下載文件不是在子集的服務(wù)器或域名中,這些瀏覽器會(huì)忽視download屬性,換句話(huà)來(lái)說(shuō),文件名不變。

提供后備方案:
在寫(xiě)本文的時(shí)候,download屬性并沒(méi)有在Safari和IE中實(shí)現(xiàn),但是IE聲稱(chēng),download屬性的實(shí)現(xiàn)已經(jīng)在開(kāi)發(fā)日程頂部了。

在這期間,我們可以使用一個(gè)后備方案去兼容那些瀏覽器。我們需要去下載Modernizr的download屬性特征測(cè)試。

然后添加以下腳本:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. if ( ! Modernizr.adownload ) {   
  2.     var $link = $('a');   
  3.     $link.each(function() {   
  4.         var $download = $(this).attr('download');   
  5.         if (typeof $download !== typeof undefined && $download !== false) {   
  6.       var $el = $('<div>').addClass('download-instruction').text('Right-click and select "Download Linked File"');   
  7.       $el.insertAfter($(this));   
  8.         }   
  9.     });   
  10. }  

這個(gè)腳本是去測(cè)試瀏覽器是否支持download屬性的,如果瀏覽器不支持的話(huà),它就會(huì)想有download屬性的<a>標(biāo)簽下面,插入一個(gè)有download-instruction類(lèi)的<div>標(biāo)簽,并給予文字指引使用右鍵下載。

標(biāo)簽:通遼 黃山 懷化 煙臺(tái) 湘潭 賀州 山南 湖北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5中的強(qiáng)制下載屬性download使用實(shí)例解析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    华蓥市| 兴宁市| 石首市| 临桂县| 凤台县| 南溪县| 客服| 简阳市| 舟曲县| 扬中市| 安多县| 通州市| 南部县| 苍山县| 二手房| 东乡县| 青浦区| 邹平县| 简阳市| 松溪县| 万安县| 嫩江县| 沂源县| 云梦县| 鱼台县| 齐河县| 马尔康县| 嵊州市| 冀州市| 邓州市| 织金县| 揭西县| 苍山县| 苏尼特左旗| 金秀| 钟山县| 景东| 土默特右旗| 广南县| 银川市| 武功县|