JavaScript HTML渲染器
该脚本允许您直接在用户浏览器上拍摄网页或其中一部分的“屏幕截图”。屏幕截图基于DOM,因此可能无法真实表示100%的准确度,因为它无法生成实际的屏幕截图,而是根据页面上的可用信息构建屏幕截图。
它是如何工作的?
该脚本通过读取DOM和应用于元素的不同样式,将当前页面呈现为画布图像。
它不需要服务器提供任何渲染,因为整个图像都是在客户端的浏览器上创建的。但是,由于它严重依赖于浏览器,因此该库不适合在nodejs中使用。它也没有神奇地规避任何浏览器内容策略限制,因此呈现跨域内容将需要代理才能使内容具有相同的来源。
该脚本仍处于试验性状态,因此不建议在生产环境中使用该脚本,也不建议您开始使用它构建应用程序,因为仍会进行重大更改。
浏览器兼容性
该库在以下浏览器(使用Promise
polyfill)上应该可以正常工作:
- Firefox 3.5+
- 谷歌浏览器
- 歌剧12+
- IE9 +
- Safari 6+
由于需要手动构建每个CSS属性以使其受支持,因此有许多尚不支持的属性。
用法
html2canvas库使用Promise
s并期望它们在全局上下文中可用。如果您希望支持本身不支持s的旧版浏览器Promise
,请在包含之前添加诸如es6-promise之类的 polyfill html2canvas
。
要element
使用html2canvas呈现,只需调用: html2canvas(element[, options]);
该函数返回一个Promise,其中包含<canvas>
元素。只需使用以下命令即可将诺言履行处理器添加到诺言中then
:
html2canvas(document.body).then(function(canvas) {
document.body.appendChild(canvas);
});
克隆git仓库:git://github.com/niklasvh/html2canvas.git