创建一个屏幕截图插件
答
不确定关于Firefox,但在Chrome扩展中,您可以捕获chrome.tabs.captureVisibleTab()
的选项卡,该选项卡将以Data URI格式返回图像。之后,如果需要,您可以使用Canvas元素操作图像。
答
做到这一点的样本扩展下面是Firefox的一个片段。在您的覆盖XUL补充:
<html:canvas id="my-canvas" style="display: none;" />
然后在你覆盖的javascript,listen for new document loads这个片段将截图保存到一个文件:
var canvas = document.getElementById('my-canvas');
var context = canvas.getContext('2d');
//Find the window dimensions
canvas.height = doc.defaultView.innerHeight; //doc is the content document that you listened for
canvas.width = doc.defaultView.innerWidth;
context.drawWindow(doc.defaultView, 0, 0, canvas.width, canvas.height, "rgba(0,0,0,0)");
//Create a data url from the canvas
var dataUrl = canvas.toDataURL("image/png");
阅读有关nsiIOService和nsiWebBrowserPersist从传输数据的URL创建一个nsiURI然后在本地坚持。
一些示例代码可以帮助你找到https://addons.mozilla.org/en-us/firefox/addon/tab-preview/ – MatrixFrog 2011-06-05 23:30:06