html2canvas关于图片不能正常截取的解决方案

所属分类: 网页制作 / HTML/Xhtml 阅读数: 903
收藏 0 赞 0 分享

问题

首先说说遇到了什么问题。首先有这么一个需求。需要前端根据后端传过来数据,动态的生成图片。图片中的文案、背景图片、用户头像全部都是通过后端的接口获取。但是使用 html2canvas 生成的canvas有些图片成功的在canvas里生成了。但是有些图片无论如何都显示不出来。

官方文档

在项目里面操作了半天未果,google了半天未果。此时有些许绝望。突然想到了,为什么不去它的 官网 看看呢。于是乎我在官网上看到了下面的内容。

Limitations<br/>
All the images that the script uses need to reside under the same origin for it to be able to read them without the assistance of a proxy. Similarly, if you have other canvas elements on the page, which have been tainted with cross-origin content, they will become dirty and no longer readable by html2canvas.<br/>
The script doesn't render plugin content such as Flash or Java applets.

讲的啥呢,这里为英文不好的同学翻译一下。英语好的可以直接看上文。大概的意思就是在html2canvas里面,是使用脚本去操作的,也就是说使用脚本把html转换成canvas,但是有一个限制,那就是不能使用跨源的图片。如果使用了,html2canvas将不会读取资源。

这也就是为什么转换出来的canvas有些图片一直是空白的原因。如果页面中有其他的canvas也使用了跨源的图片资源,html2canvas都不会去读取。

解决方案

对静态资源做一次转发并且在html2canvas的 配置 里面允许加载跨源资源,就可以了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

DOCTYPE 文档类型声明(网页爱好者必看)

文档类型声明与不声明,将会导致你的css或js都无法正常安装要求显示。所以好多网站都声明了文档类型。这样做有什么好处大家可以看看下面的文章。
收藏 0 赞 0 分享

纯HTML标签你熟悉多少?

HTML标签很多,可是实际上常用的却就那么十几二十个,很多标签的功能渐渐的被大家忽略了.然后,如果在适当的时候,用一用,还是能在一定程序上给我们的页面设计带来一点小小的方便的.
收藏 0 赞 0 分享

HTML元素的ID和Name属性的区别

ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的。
收藏 0 赞 0 分享

HTML meta的大作用

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的与中,meta 标签的用处很多。
收藏 0 赞 0 分享

HTML标签tbody的用法与说明

tbody 标签表格主体(正文)。该标签用于组合 HTML 表格的主体内容。
收藏 0 赞 0 分享

HTML 特殊字符转换表

html下特殊字符转换表
收藏 0 赞 0 分享

HTML基础 HTML的组成结构

HTML是网页主要的组成部分,基本上一个网页都是由HTML语言组成的,所以要学习网站怎样建设,必须从网页的基本语言学起。
收藏 0 赞 0 分享

HTML基础之HTML内容细则

我们在第一讲里概括了一下网页的主要框架,现在我们来详细的研究网页的内部细则
收藏 0 赞 0 分享

Shtml 精简教程

SSI有什么用? 之所以要扯到ssi,是因爲shtml--server-parsed HTML 的首字母缩略词。包含有嵌入式服务器方包含命令的 HTML 文本。在被传送给浏览器之前,服务器会对 SHTML 文档进行完全地读取、分析以及修改。
收藏 0 赞 0 分享

浅谈html table 标签

总的来说,table是个复杂的东西,关于它的主题也很多。我想简单的复习一下table。
收藏 0 赞 0 分享
查看更多