我需要创建一个插件/扩展/ bookmarklet / greasemonkey脚本,允许用户捕获任意请求并将其发送回带有某些标记的Web服务。例如,用户将进入页面并单击“捕获”,并且将向他们呈现对话框,询问他们某些标签和/或描述,然后将当前窗口位置发送到Web服务。这是一个问题:
用户还应该能够查看异步请求并以捕获窗口位置的方式“捕获”它们
用户应该能够捕获当前页面的屏幕截图并通过网络服务发送回来
考虑到最后两个并发症,我倾向于使用浏览器插件作为解决方案(可能是firefox,因为低级http的东西似乎比chrome更好支持),但我想知道是否有人有更多的想法跨浏览器的解决方案,或者,如果有什么东西可以提供这种东西的良好API。
答案 0 :(得分:2)
不会有跨浏览器解决方案允许捕获所有请求。对于Firefox,您将实现nsIContentPolicy interface并在content-policy
类别中注册您的组件。对于Chrome,您需要experimental webRequest API(WebKit浏览器中的beforeload
事件会做同样的事情,但它不会捕获所有内容,它也有severe side-effects)。
对于网页截图,可以在Firefox扩展程序中使用HTML <canvas>
标记并调用drawWindow method。然后,您可以通过canvas.toDataURL()
导出数据。 我不知道任何WebKit浏览器的替代品。 chrome.tabs.captureVisibleTab()允许在Chrome中做同样的事情。