使用HTML5 Canvas捕获网页的一部分?

Ric*_*ard 12 javascript html5 screenshot canvas

我知道您可以使用画布从HTML5视频流中捕获图像并在页面上显示它们.我感兴趣的是你可以使用canvas对象在网页上创建一个叠加层,然后捕获该页面或其中一部分的PNG快照.

我想通过添加屏幕截图(在浏览器页面内)来增强我们的网站审阅工具,然后可以将其提交到远程服务器.

YouTrack使用Java applet实现这一点,但现代HTML5技术是否可行?

对此问题的任何其他建议的解决方案也将不胜感激.

谢谢

Nik*_*las 13

您可以通过读取DOM并使用javascript创建画布图像来"模拟"屏幕视图.查看http://hertzen.com/experiments/jsfeedback/和底层html2canvas脚本,了解如何使用纯Javascript(无需插件或服务器交互).


Sim*_*ris 6

这问得很多.简短的回答是出于安全原因无法完成.

更长的答案包括drawWindow仅提供FireFox所具有的功能,该功能仅在本地工作(出于安全原因).将来,一旦用户授予权限,它就可以工作,就像今天的Java applet一样.在未来,它甚至可能是规范的一部分,而不是Mozilla完成的一次性事情.

如果你感到疯狂,你可以尝试创建一个完整的HTML渲染器,为页面获取DOM树,并尝试在Canvas中渲染它.这是一个傻瓜的差事.