婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 利用canvas實現圖片下載功能來實現瀏覽器兼容問題

利用canvas實現圖片下載功能來實現瀏覽器兼容問題

熱門標簽:標準智能外呼系統 搜狗星級酒店地圖標注 洛陽市伊川縣地圖標注中心官網 電銷機器人視頻 江蘇高頻外呼系統線路 高德地圖標注錯誤怎么修改 地圖標注自己去過的地方 會聲會影怎樣做地圖標注效果 平頂山電子地圖標注怎么修改

前言:項目中需要實現圖片下載功能,第一個想到的是使用a標簽的download屬性來實現,但是在不同瀏覽器下測試會發現,有的瀏覽器無效,點擊后直接預覽圖片,所以,上網找到了另外一種兼容不同瀏覽器的圖片下載的方法,那就是利用canvas來處理圖片,實現下載;

1.項目中點擊事件綁定:

<a href="#" @click.prevent="downloadIamge(imgsrc, name)"><span>{{name}}</span></a>

2.點擊事件中操作:

downloadIamge (imgsrc, name) {
      const url = imgsrc
      this.convertUrlToBase64(url).then((base64) => {
        const blob = this.convertBase64UrlToBlob(base64)
        if (getBrowser() === 'IE' || getBrowser() === 'Edge') {
          window.navigator.msSaveBlob(blob, name)
        } else {
          const a = document.createElement('a')
          const body = document.querySelector('body')
          a.download = name || 'image'
          a.href = URL.createObjectURL(blob)
          a.style.display = 'none'
          body.appendChild(a)
          a.click()
          body.removeChild(a)
          window.URL.revokeObjectURL(a.href)
        }
      })
    },

3.this.convertUrlToBase64(url)就是利用canvas和toDataURL把圖片轉成base64格式并返回

convertUrlToBase64 (url) {
      return new Promise((resolve, reject) => {
        const img = new Image()
        img.crossOrigin = 'Anonymous'
        img.src = url
        img.onload = function () {
          const canvas = document.createElement('canvas')
          canvas.width = img.width
          canvas.height = img.height
          const ctx = canvas.getContext('2d')
          ctx.drawImage(img, 0, 0, img.width, img.height)
          const ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase()
          const dataURL = canvas.toDataURL('image/' + ext)
          const base64 = {
            dataURL: dataURL,
            type: 'image/' + ext,
            ext: ext
          }
          resolve(base64)
        }
      })
    },

其中:img.crossOrigin = 'Anonymous'是前端對圖片的跨域處理;

4.this.convertBase64UrlToBlob(base64)是將圖片base64流文件轉成blob文件

convertBase64UrlToBlob (base64) {
      const parts = base64.dataURL.split('base64,')
      const contentType = parts[0].split(':')[1]
      const raw = window.atob(parts[1])
      const rawLength = raw.length
      const uInt8Array = new Uint8Array(rawLength)
      for (let i = 0; i < rawLength; i++) {
        uInt8Array[i] = raw.charCodeAt(i)
      }
      return new Blob([uInt8Array], { type: contentType })
    },

5.getBrowser()用來判斷瀏覽器,解決瀏覽器兼容性問題:

import { getBrowser } from '@/utils/utils'
export function getBrowser () {
  const userAgent = navigator.userAgent
  if (userAgent.indexOf('OPR') > -1) {
    return 'Opera'
  }
  if (userAgent.indexOf('Firefox') > -1) {
    return 'FF'
  }
  if (userAgent.indexOf('Trident') > -1) {
    return 'IE'
  }
  if (userAgent.indexOf('Edge') > -1) {
    return 'Edge'
  }
  if (userAgent.indexOf('Chrome') > -1) {
    return 'Chrome'
  }
  if (userAgent.indexOf('Safari') > -1) {
    return 'Safari'
  }
}

6.如果是IE或者Edge瀏覽器,可以直接使用window.navigator.msSaveBlob(blob, name)完成下載;

聲明:由于ios系統有安全性限制,以上方法在ios上無效;

以上就是記錄項目中用到的圖片下載,瀏覽器兼容的問題,涉及到的base64和blob的知識點和原理還不是很清晰,有時間一定要研究一下,整個方法,親測有效;歡迎測用,與意見反饋。也希望大家多多支持腳本之家。

標簽:松原 果洛 阿克蘇 常德 蚌埠 廣西 廣東 鄂爾多斯

巨人網絡通訊聲明:本文標題《利用canvas實現圖片下載功能來實現瀏覽器兼容問題》,本文關鍵詞  利用,canvas,實現,圖片下載,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《利用canvas實現圖片下載功能來實現瀏覽器兼容問題》相關的同類信息!
  • 本頁收集關于利用canvas實現圖片下載功能來實現瀏覽器兼容問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲成人av一区| 三级在线观看一区二区| 日本精品裸体写真集在线观看 | 国产成人精品亚洲日本在线桃色| 国产亚洲福利社区一区| 国产精品视频麻豆| 欧美日韩成人一区| 东方欧美亚洲色图在线| 一区二区三区自拍| 欧美三级视频在线观看| 另类中文字幕网| 91丨porny丨户外露出| 久久久久久一级片| 一道本成人在线| 亚洲国产综合在线| 韩国视频一区二区| 91精品国产综合久久国产大片| 成人h动漫精品| 国产高清成人在线| 99久久久久久| 欧美日韩免费高清一区色橹橹 | 成人禁用看黄a在线| 国产一区二区免费看| 日韩精品一区二区三区蜜臀| 欧美精品一区二区高清在线观看| 51久久夜色精品国产麻豆| 欧美不卡视频一区| 欧美猛男gaygay网站| 精品国产欧美一区二区| 国产精品超碰97尤物18| 亚洲在线成人精品| 亚洲免费毛片网站| 丝袜美腿亚洲一区| 国产精品99久久久| 欧美日韩精品欧美日韩精品一| 国产精品福利一区二区三区| 久久精品欧美一区二区三区麻豆| 亚洲女同一区二区| 蜜臀av一级做a爰片久久| 高清在线成人网| 韩国v欧美v日本v亚洲v| 久久美女艺术照精彩视频福利播放 | 色婷婷精品久久二区二区蜜臀av | 精品久久久久久亚洲综合网 | 丁香激情综合五月| 一本大道综合伊人精品热热| 成人精品一区二区三区中文字幕| 国产美女久久久久| 亚洲一区二区成人在线观看| 欧美色涩在线第一页| 天堂va蜜桃一区二区三区| 久久国产精品免费| 欧美日韩精品免费观看视频| 日韩无一区二区| 欧美无乱码久久久免费午夜一区| 色久综合一二码| 精品久久久网站| 亚洲一区视频在线观看视频| 在线欧美一区二区| 欧美日韩黄色影视| 欧美日韩精品免费观看视频| 成人激情免费网站| 国产亚洲视频系列| 欧美精品黑人性xxxx| 精品久久久久久久久久久久久久久久久 | 亚洲成人一区在线| 日韩视频国产视频| www.欧美.com| 一区二区久久久| 不卡的电视剧免费网站有什么| 国产欧美久久久精品影院| 国产亚洲一二三区| 亚洲超碰精品一区二区| 精品久久久久久久久久久久久久久| 成人av网址在线观看| 奇米影视一区二区三区小说| 国产精品免费aⅴ片在线观看| 91在线免费播放| 久久综合999| 国产欧美视频在线观看| 精品中文字幕一区二区小辣椒| 亚洲精品成a人| 国产精品水嫩水嫩| 国产网红主播福利一区二区| 欧美一区二区三区爱爱| 成人免费高清视频在线观看| 三级成人在线视频| 久久精品欧美日韩精品| 亚洲成va人在线观看| 欧美一区二区啪啪| 日韩女优视频免费观看| 欧美综合在线视频| 欧美大胆一级视频| 国产一区二区调教| 蜜桃91丨九色丨蝌蚪91桃色| 欧美激情艳妇裸体舞| 日韩欧美中文字幕一区| 精品在线观看免费| 国产精品的网站| 亚洲免费三区一区二区| 99久久国产综合精品女不卡| 九九**精品视频免费播放| 99久久精品费精品国产一区二区| 国产精品嫩草久久久久| 久久精品视频在线看| 国产日韩欧美不卡在线| 欧美岛国在线观看| 91麻豆精品国产| 99re热视频精品| 一级中文字幕一区二区| 亚洲人精品一区| 色综合av在线| 国产精品久久久久永久免费观看| 欧美一区二区三区在线观看| 国产传媒一区在线| 国产精品一区二区久久精品爱涩| 国产精品欧美综合在线| 午夜电影久久久| 国产不卡视频在线播放| 国产精品传媒视频| 色丁香久综合在线久综合在线观看| 日本最新不卡在线| 91精品在线观看入口| 久久久国产午夜精品 | 精品一区二区精品| 99久久精品免费看国产免费软件| 色哟哟一区二区在线观看| 在线精品视频免费观看| 欧美三级韩国三级日本一级| 欧美日韩成人高清| 国产呦萝稀缺另类资源| 成人av在线播放网站| 国产一区二区三区电影在线观看| 99精品视频在线观看| 综合在线观看色| 国产精品女主播在线观看| 亚洲素人一区二区| 欧美日韩免费一区二区三区视频| 欧美成人一区二区| 国产精品免费免费| 欧美精品一二三四| 亚洲欧美日韩久久精品| 亚洲激情av在线| 天天爽夜夜爽夜夜爽精品视频 | 日韩av中文字幕一区二区| 久久av老司机精品网站导航| 国产精品香蕉一区二区三区| 一本大道久久精品懂色aⅴ| 国产视频一区二区在线| 午夜亚洲福利老司机| 婷婷激情综合网| 91啪九色porn原创视频在线观看| 9色porny自拍视频一区二区| 色爱区综合激月婷婷| 久久蜜桃av一区二区天堂| 欧美午夜精品久久久久久超碰| 精品久久国产97色综合| 久久69国产一区二区蜜臀| 亚洲欧美另类小说| 国产午夜亚洲精品理论片色戒| 久久这里只有精品首页| 久久久一区二区三区捆绑**| 亚洲女爱视频在线| 午夜精品免费在线| 99国产精品99久久久久久| 在线成人免费观看| 亚洲视频一区二区在线| 国产一区二区三区久久悠悠色av| 精一区二区三区| 欧美日韩中文一区| 555www色欧美视频| 青青草原综合久久大伊人精品优势| 黑人精品欧美一区二区蜜桃| 久久嫩草精品久久久精品| 午夜精品123| 成人永久aaa| 欧美一区二区三区播放老司机| 国产精品一区二区x88av| 不卡的看片网站| 精品综合久久久久久8888| 国产精品毛片a∨一区二区三区| 色婷婷av一区二区| 美女一区二区久久| 国产91在线观看丝袜| 91香蕉国产在线观看软件| 久久美女艺术照精彩视频福利播放| 午夜精品久久久久影视| 91精品国产欧美日韩| 亚洲成国产人片在线观看| 亚洲永久精品大片| 日韩欧美国产综合一区| 成人一道本在线| 日韩毛片一二三区| 色拍拍在线精品视频8848| 欧美xxxx老人做受| 国产91精品在线观看| 在线精品观看国产| 成人国产精品视频| 亚洲激情在线播放| 欧美亚洲高清一区|