美文网首页Node
使用html2canvas根据DOM元素实现html转化成照片

使用html2canvas根据DOM元素实现html转化成照片

作者: 吴志军 | 来源:发表于2016-11-04 10:28 被阅读3529次

        html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功

能。html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。

它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建。当浏览器不支持Canvas时,将采用Flashcanvas或

ExplorerCanvas技术代替实现。以下浏览器能够很好的支持该脚本:Firefox 3.5+, Google Chrome,

Opera新的版本, IE9以上的浏览器。

因为每个浏览器渲染页面的方式都不尽相同,所以生成的图片也不太一样。虽然它目前还是处理开发阶段,但还是很值得期待的。

这个插件依赖于jQuery插件,建议使用最新版的。

兼容性

html2canvas能在以下的浏览器中完美的运行。

- Firefox 3.5+

- Chrome

- Opera

- IE9使用方法

1、引入文件

首先我们需要引入jQuery库和html2canvas插件文件,注意html2canvas插件文件一定要在jQuery的后面引入,不然会报错。

2、调用插件

通过html2canvas方法调用插件,该方法接受两个参数,第一个为要生成截图的DOM元素,第二个参数为插件的配置

html2canvas(document.getElementById('content'), {

allowTaint: true,

taintTest: false,

onrendered: function(canvas) {

debugger;

canvas.id = "contenthh";

//document.body.appendChild(canvas);

//生成base64图片数据

var dataUrl = canvas.toDataURL();

//                 var newImg = document.createElement("img");

//                 newImg.src =  dataUrl;

//                 document.body.appendChild(newImg);

window.open(dataUrl);

}

});

通过一个回调函数来处理获取到的截图。

图片跨域问题

在网页的图片中,如果有跨域图片,调用toDataURL的时候会出错

SecurityError: The operation is insecure.

解决方法是在跨域的服务器上设置header设置为允许跨域请求

access-control-allow-origin: *  access-control-allow-credentials: true

相关文章

  • 使用html2canvas根据DOM元素实现html转化成照片

    html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实...

  • 操作dom 把页面转为图片并下载

    原理:1,通过命令 npm i html2canvas,引用 html2canvas 的包,它可以将页面DOM元素...

  • js截屏

    使用Html2canvas截屏 下载Html2canvas Html2canvas加载后将会浏览页面上的所有元素,...

  • h5 利用html2canvas将html转换成图片

    html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能...

  • HTML转PDF下载

    使用html2canvas和jspdf插件实现通过html2canvas将HTML页面转换成图片,然后再通过jsp...

  • js实现选区截图

    工具:html2canvas、canvas2image、vue 思路:用html2canvas将整个页面的dom转...

  • Element节点

    Element节点对象对应网页的 HTML 元素。每一个 HTML 元素在 DOM 树上都会转化成一个Elemen...

  • js DOM(5)

    Element节点对象对应网页的 HTML 元素。每一个 HTML 元素,在 DOM 树上都会转化成一个Eleme...

  • DOM—Element节点

    Element节点对象对应网页的 HTML 元素。每一个 HTML 元素,在 DOM 树上都会转化成一个Eleme...

  • html2canvas And FileSaver保存图片到本地

    最近做项目为了解决把html保存一个图片,使用了html2canvas前端插件实现。 html2canvas Gi...

网友评论

    本文标题:使用html2canvas根据DOM元素实现html转化成照片

    本文链接:https://www.haomeiwen.com/subject/sfpduttx.html