如何在JavaScript客户端中截图网站/谷歌如何做到这一点? (不需要访问硬盘)
我正在开发Web应用程序,需要渲染一个页面并在客户端(浏览器)端做一个截图。
我不需要将屏幕截图保存在本地硬盘上,只需将其保存在RAM中,稍后再发送到应用程序服务器即可。
我研究过:
- BrowserShots等服务…
- 机械化浏览器…
- wkhtmltoimage …
- Python WebKit2PNG …
但是这些都没有给我所需要的一切,那就是:
- 在浏览器端进行处理(生成页面的截图)。 不需要保存在硬盘上! 只是…
- …将图像发送到服务器进行进一步处理。
- 捕获整个页面(不仅是可见的部分)
最终我find了Google的反馈工具(点击YouTube页脚上的“反馈”查看)。 它包含了用于JPG编码的JavaScript和其他两个巨大的脚本,我无法确定它们究竟是干什么的…
但是它在客户端处理 – 否则将这个巨大的JPEG编码器放在代码中没有意义!
任何人有任何想法他们是如何做到这一点/我怎么能做到这一点?
这里是一个反馈的例子(在一些屏幕上报告错误)
“ 使用HTML5 / Canvas / JavaScript截屏 ”解决了您的问题。
您可以使用JavaScript / Canvas来完成这项工作,但它仍然是实验性的。
我需要快照页面上的一个div(对于我写的一个webapp),它受JWT的保护,并且非常使用Angular。
我没有任何上述方法的运气。
我结束了我需要的div的outerHTML,清理了一下(*),然后发送到服务器,我运行wkhtmltopdf反对它。
这对我来说很好。
(*)我的网页中的各种input设备没有呈现为检查或在PDF中查看时有其文本值…所以我运行一点点的jQuery的HTML之前,我发送渲染。 例如:对于文本input项目 – 我将他们的.val()复制到“value”属性中,然后可以通过wkhtmlpdf
SnapEngage使用Java小程序提供此服务。 您可以使用他们的产品Snapabug或使用这里的信息重新创build他们的function。 你也可以在这里阅读。