如何在JavaScript客户端中截图网站/谷歌如何做到这一点? (不需要访问硬盘)

我正在开发Web应用程序,需要渲染一个页面并在客户端(浏览器)端做一个截图。

我不需要将屏幕截图保存在本地硬盘上,只需将其保存在RAM中,稍后再发送到应用程序服务器即可。

我研究过:

  1. BrowserShots等服务…
  2. 机械化浏览器…
  3. wkhtmltoimage …
  4. Python WebKit2PNG …

但是这些都没有给我所需要的一切,那就是:

  1. 在浏览器端进行处理(生成页面的截图)。 不需要保存在硬盘上! 只是…
  2. …将图像发送到服务器进行进一步处理。
  3. 捕获整个页面(不仅是可见的部分)

最终我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。 你也可以在这里阅读。

Interesting Posts