IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> html2canvas使用中遇到的问题 -> 正文阅读

[JavaScript知识库]html2canvas使用中遇到的问题

使用html2canvas可以对指定原生元素进行截图,本来是要用echarts直接截图的,但echarts自身的API有些情况下不能满足需求,所以前者用起来自由度好一些

ie兼容

ie运行截图后提示打开blob程序弹窗

html2canvas在ie环境使用会出现缺少blob的问题,对其进行兼容性操作

exportDivImgs (ref, name) {
      html2canvas(this.$refs[ref], {
        scrollY: 0,//滚动条置顶
        width: this.$refs[ref].clientWidth + 10,//设置截图的偏移
        height: this.$refs[ref].clientHeight + 20
      }).then(canvas => {
        const dataURL = canvas.toDataURL('image/png')//base64码
        const userAgent = navigator.userAgent//获取浏览器类型
        // 兼容ie
        if (userAgent.includes('Trident')) {//判断IE内核
          const arr = dataURL.split(',')
          const mime = arr[0].match(/:(.*?);/)[1]
          const bstr = atob(arr[1])//
          let n = bstr.length
          const u8arr = new Uint8Array(n)
          while (n--) {
            u8arr[n] = bstr.charCodeAt(n)
          }
          window.navigator.msSaveBlob(new Blob([u8arr], { type: mime }), `${name}.jpg`)
        } else {
          const linkDom = document.createElement('a')
          linkDom.className = 'part-download'
          document.body.appendChild(linkDom)
          linkDom.href = dataURL
          linkDom.download = name // 命名下载名称
          linkDom.click() // 触发下载
          window.URL.revokeObjectURL(dataURL) // 下载完成进行释放
          document.body.removeChild(linkDom) // 删除新增节点
        }
      })
    }

ie中使用,不支持elementUI的复选框,会样式错乱和缺失

尝试换成旧版本的html2canvas@v0.5.0-beta4,结果谷歌浏览器里复选框截图后勾也没了。
暂时没找到有效合理的方法

elementUI中的元素绑定id和ref报错

直接给比如绑定id、ref会报错,Error: Element is not attached to a Document。
可以用div然后让class=“el-row”,绘图要选择的dom元素必须是原生元素,不能使用ui库元素;

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:43:22  更:2021-08-02 10:44:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 17:37:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码