网页截图api 使用HTML5/Canvas/JavaScript进入浏览器屏幕截图




网页截图api (2)

Google的“报告错误”或“反馈工具”可让您选择浏览器窗口的某个区域,以创建一个屏幕截图,并提交您的反馈并提供有关错误的截图。

Jason Small截图,张贴在一个重复的问题

他们如何做到这一点? 谷歌的JavaScript反馈API从here加载, 他们对反馈模块的概述将展示截图功能。


JavaScript可以读取DOM并使用canvas呈现相当准确的表示。 我一直在研究一个将HTML转换为canvas图像的脚本。 今天决定将其实施为发送您所描述的反馈。

该脚本允许您创建反馈表单,其中包括在客户端浏览器上创建的屏幕截图以及表单。 屏幕截图基于DOM,因此它可能不是100%准确的真实表示,因为它不会制作实际的屏幕截图,而是根据页面上提供的信息构建屏幕截图。

不需要来自服务器的任何呈现 ,因为整个图像是在客户端浏览器上创建的。 HTML2Canvas脚本本身仍处于非常实验性的状态,因为它不会解析我希望的CSS3属性的几乎所有的属性,即使代理可用,它也不支持加载CORS映像。

浏览器的兼容性还是相当有限(不是因为更多的不支持,只是没有时间让它更支持跨浏览器)。

欲了解更多信息,请看这里的例子:

http://hertzen.com/experiments/jsfeedback/

编辑 html2canvas脚本现在可单独here和一些例子在这里

编辑2谷歌反馈团队的Elliott Sprehn在本演示中可以找到Google使用非常类似的方法的另一个确认(实际上基于文档,唯一的区别是它们的异步遍历/绘图方法): http://www.elliottsprehn.com/preso/fluentconf/


您的网络应用程序现在可以使用getUserMedia()获取客户端整个桌面的“原生”屏幕截图:

看看这个例子:

https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/

客户端必须使用chrome(现在),并且需要在chrome://标志下启用屏幕截图支持。





screenshot