相关文件(vue3.0)

 <script src="https://cdn.jsdelivr.net/bluebird/latest/bluebird.js"></script> //兼容IE
<script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta3/html2canvas.js"></script>
//https://blog-static.cnblogs.com/files/wwj007/bluebird.js
//https://blog-static.cnblogs.com/files/wwj007/html2canvas.js
    // 调用html2canvas插件
html2canvas(document.body).then(function (canvas) {
// canvas宽度
var canvasWidth = canvas.width;
// canvas高度
var canvasHeight = canvas.height;
// 调用Canvas2Image插件
var img = Canvas2Image.convertToImage(canvas, canvasWidth, canvasHeight);
//图片类型.宽度.高度.文件名
let type = document.getElementById('sel') ? document.getElementById('sel').getAttribute('value') : null
let w = document.getElementById('imgW') ? document.getElementById('imgW').getAttribute('value') : null
let h = document.getElementById('imgH') ? document.getElementById('imgH').getAttribute('value') : null
let f = document.getElementById('imgFileName') ? document.getElementById('imgFileName').getAttribute('value') : null
w = (w === '') ? canvasWidth : w; //判断输入宽高是否为空,为空时保持原来的值
h = (h === '') ? canvasHeight : h;
// 调用Canvas2Image插件
Canvas2Image.saveAsImage(canvas, w, h, type, f);
});

兼容 IE

 html2canvas(document.body, {
allowTaint: false,
foreignObjectRendering: true,
taintTest: false,
useCORS: true,//火狐浏览器添加项
onrendered: function (canvas) {
var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
var userAgent = navigator.userAgent;
//判断是否是IE11
if (-1 !== userAgent.indexOf("Trident")) {
var arr = image.split(',');
var mime = arr[0].match(/:(.*?);/)[1];
var bstr = atob(arr[1]);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
window.navigator.msSaveBlob(new Blob([u8arr], { type: mime }), "download.png");
} else {
canvas.id = "mycanvas";
//生成base64图片数据
var dataUrl = canvas.toDataURL();
var newImg = document.createElement("img");
newImg.setAttribute('crossOrigin', 'anonymous');
newImg.src = dataUrl;
var b = document.createElement('a')
b.setAttribute("href", dataUrl)
b.setAttribute("download", "img.png")
document.body.appendChild(b)//火狐浏览器添加项
b.click(); b.remove()
}
}
});

截图到下载一键完成

最新文章

  1. 解决vs创建或打开C++浏览数据库文件*.sdf时发生错误的问题
  2. osgAnimation例子的注释的注释
  3. WAMPServer 默认安装启动后,图标显示橙黄色
  4. 【mysql】数据库使用的一些规范
  5. 跨应用程序域(AppDomain)的单例(Singleton)实现
  6. 7款应用最广泛的Linux桌面环境盘点
  7. 搭建高性能计算环境(二)、远程登录Linux服务器
  8. [转] Java中继承thread类与实现Runnable接口的区别
  9. POJ 1379 Run Away 【基础模拟退火】
  10. GridControl使用技巧总结,更新中...
  11. RocketMQ部分数据消费不了问题排查
  12. hibernate封装Until工具类
  13. [Swift]LeetCode123. 买卖股票的最佳时机 III | Best Time to Buy and Sell Stock III
  14. CSS效果:不怎么样的登录表单
  15. [转]Angular开发(十八)-路由的基本认识
  16. SQL Server中UPDATE和DELETE语句结合INNER/LEFT/RIGHT/FULL JOIN的用法
  17. Memcached遇到的问题及解决办法
  18. 关于zynq7 中MIO的理解
  19. ABP框架服务层的接口与实现(增删改查)
  20. 使用Eclipse对FFmpeg进行调试

热门文章

  1. 将Bean转换为Json形式的一个工具类
  2. 套接字之select系统调用
  3. 一、基础篇--1.1Java基础-Object类中常见的方法,为什么wait notify会放在Object里边
  4. 选择company回显appname
  5. leecode 238除自身以外数组的乘积
  6. BurpSuite(二) proxy 模块
  7. CentOS7 通过 YUM 升级 VIM8
  8. 慕课网_Java入门第二季
  9. ListView控件,表格模式下,如何调整行高
  10. python3.5 append使用