2011-06-29 44 views
11

我没有邀请,但在TWIG上使用过。 它的工作原理如下:Google+反馈系统的屏幕截图部分如何工作?

你可以选择一个部分来突出显示,部分停电。 在下一步中,会创建一个截图(??),您可以预览其他浏览器信息的传输方式。

那么Google如何创建该截图?它发送完整的修改过的DOM用于服务器端处理吗?还有其他什么黑魔法?

+5

Duplicate:http://stackoverflow.com/questions/4912092/using-html5-canvas-javascript-to-take-screenshots –

回答

9

亮点和黑点只是HTML divs该页面的屏幕截图是一个画布。

我使用了Chrome的开发者工具来确认这一点。它甚至可以在Firefox和Internet Explorer中运行,所以它绝对不仅仅是Chrome的一件事。

这里的开发工具与高光元素的一个截图突出显示,以表明它是一个div

Google Chrome Developer Tools - Feedback Tool

有一个帆布:

Canvas

当对话中这样说:

请稍候,我们正在为您简单快捷地查看页面,以便让您亮显的地点为 。

它似乎是呈现服务器上的页面屏幕截图(因为网络选项卡中有一个请求,它与快照和根据请求URL中的变量进行的反馈有关)以及然后它将屏幕截图放在页面上。

当您点击“下一步”后,将会打开另一个对话框,其中包含所有信息并呈现最终截图,其中包含亮点和黑屏。

Final dialog

我不知道他们是怎么做虽然在“高亮文本”的一部分。

0

不知道该功能,但如何描述它; 它不是一个跨平台的功能,不在规格中。您正在寻找画布元素的drawWindow。然后,他们对画布进行base64/urlencode编码并将其发送到服务器。可以想象他们支持IE6支持的服务器端黑魔法..或者他们使谷歌+ html5浏览器的唯一的东西..

+2

我不认为整个事情是'' - 标签。 –

+1

曾经看过'新'谷歌图片网站?他们就像一百万个画布标签(因为没有任何明显的原因)。它必须是画布,因为没有其他方法可以在客户端上制作网站的打印屏幕(或者我不了解Google +的功能,Jakob Cosoroaba描述的是什么) – japrescott

+0

我没有看到任何画布标签在渲染的内容中。我可能会缺少一些,但毫无疑问,某些数据是普通的旧HTML。 – Matt

0

它可以只发送整个DOM树到服务器,并让它在另一端呈现。

+0

这是我首先想到的,因为Google确实有办法呈现站点服务器端的图像。我想测试它,但我不想发送垃圾回馈以尝试捕获它。这种方法唯一的问题是,它意味着任何渲染错误都不会显示出来。 –