HTML5 a標簽的down屬性進行圖片下載


a標簽中的down屬性時HTML5新增的屬性,此屬性指示瀏覽器下載URL而不是導航到URL,因此將提示用戶將其保存為本地文件。目前該屬性的兼容性如下:

具體代碼實現:

 1 /*
 2   主要原理:利用a標簽的download屬性以及canvas的toDataURL()
 3   selector: 圖片的選擇器
 4   name:被下載圖片的命名
 5 */
 6 downloadPicture (selector, name) {
 7   let image = new Image()
 8   // 解決跨域 Canvas 污染問題
 9   image.setAttribute('crossOrigin', 'anonymous')
10   image.onload = function () {
11     // 創建一個canvas標簽
12     let canvas = document.createElement('canvas')
13     // 設置canvas的寬高
14     canvas.width = image.width
15     canvas.height = image.height
16     // 獲取canvas的2d界面
17     let context = canvas.getContext('2d')
18     // 把圖片畫在canvas上
19     context.drawImage(image, 0, 0, 200, 200)
20     // 把canvas的內容轉化為base64格式
21     let url = canvas.toDataURL('image/png')
22 
23     // 生成一個a元素
24     let a = document.createElement('a')
25     // 創建一個單擊事件
26     let event = new MouseEvent('click')
27 
28     // 將a的download屬性設置為我們想要下載的圖片名稱,若name不存在則使用‘下載圖片名稱’作為默認名稱
29     a.download = name || '下載圖片名稱'
30     // 將生成的URL設置為a.href屬性
31     a.href = url
32 
33     // 觸發a的單擊事件
34     a.dispatchEvent(event)
35   }
36   // 獲取img上的src值,賦值之后,完成之后會調用onload事件
37   image.src = document.querySelector(selector).src
38 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM