首页 文章

如何在JavaScript客户端截图网站/ Google如何做到这一点? (无需访问硬盘)[重复]

提问于
浏览
199

这个问题在这里已有答案:

我正在研究需要渲染页面并在客户端(浏览器)端制作屏幕截图的Web应用程序 .

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

我研究过:

  • BrowserShots一样的服务......

  • 机械化浏览器......

  • wkhtmltoimage ...

  • Python WebKit2PNG ......

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

  • 在浏览器端处理(生成页面截图) . 不需要保存在硬盘上!只是...

  • ...将图像发送到服务器进行进一步处理 .

  • 捕获整页(不仅仅是可见部分)

最后,我找到了谷歌的反馈工具(点击YouTube页脚上的"feedback"查看此内容) . 它包含JavaScript for JPG encoding和另外两个巨大的脚本,我无法确定它们到底做了什么......

但它是在客户端进行处理的 - 否则将这个巨大的JPEG编码器放入代码中就没有意义了!

任何人都知道他们是如何制作的/我如何制作它?

以下是反馈示例(在某些屏幕上报告错误)

Feedback/report bug example

3 回答

  • 68

    Using HTML5/Canvas/JavaScript to take screenshots”回答你的问题 .

    您可以使用JavaScript / Canvas来完成这项工作,但它仍然是实验性的 .

  • 4

    我需要对页面上的div进行快照(对于我编写的webapp),它受到JWT的保护并且非常大量地使用Angular .

    我没有任何上述方法的运气 .

    我最终得到了我需要的div的outerHTML,清理了一点(*),然后将它发送到我运行wkhtmltopdf的服务器 .

    这对我来说非常好 .

    (*)我的页面中的各种输入设备在pdf中查看时没有呈现为已检查或具有文本值...所以我在html上运行了一些jQuery,然后再发送它进行渲染 . 例如:对于文本输入项 - 我将它们的.val()复制到'value'属性中,然后可以通过wkhtmlpdf查看

  • 14

    SnapEngage 使用 Java applet 提供此服务 . 您可以使用其产品Snapabug或使用here信息重新创建其功能 . 你也可以阅读它here .

相关问题