不容错过的前端快照功能(html2canvas)

本文介绍了如何使用html2canvas在前端实现页面快照功能,涉及跨域解决方案、资源加载和微信导出问题。通过理解CORS、结合javascript库处理跨域限制,解决图片加载不全和在微信中导出的问题。
摘要由CSDN通过智能技术生成
背景

结合后端数据生成运营推广页面,用户通过保存操作将推广页面保存为图片进行分享和传播。其中涉及到的前端主要技术点:

  1. dom转图片
  2. 保存图片到本地
了解 CORS

CORS(Cross-Origin Resource Sharing,跨域资源共享),同源安全策略默认阻止跨域获取资源,通过CORS给了Web服务器这样的权限,即服务器可以选择,允许跨域请求访问到它们的资源。CORS由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端JavaScript代码获取跨域请求的响应。

什么情况下需要CORS:

  1. XMLHttpRequestFetch发起的跨源HTTP请求。
  2. Web字体 (CSS中通过@font-face使用跨源字体资源)。
  3. WebGL贴图。
  4. 使用drawImageImages/video画面绘制到canvas
技术方案

html2canvas提供将dom绘制到canvasfile-saver:提供将Blob导出为本地文件。流程既是:
dom => html2canvas => canvas => blob => file-saver => image

import html2canvas from 'html2canvas';
import {
    saveAs } from 'file-saver';

const dom = document.getElementById('html-to-canvas')
html2canvas(dom, {
   
  useCORS: true,
})
  then(canvas => {
   
    const blob 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值