gpt4 book ai didi

javascript - firefox addon sdk 1.17 截图

转载 作者:搜寻专家 更新时间:2023-11-01 04:08:43 26 4
gpt4 key购买 nike

我正在使用 SDK 1.17 开发一个 Firefox 插件。它包含一个面板,里面有一个按钮(使用 ExtJs 开发),我想在用户单击按钮时截取当前页面的屏幕截图。在 Google chrome 中有一个 API (chrome.page-capture)。但是我在 Firefox 中找不到类似的。在 Firefox 中如何从 main.js 执行此任务。

最佳答案

好的,我找到了答案。此代码可用于拍摄整页屏幕截图。

在您的 main.js 中添加此代码。

  var window = require('sdk/window/utils').getMostRecentBrowserWindow();
var tab = require('sdk/tabs/utils').getActiveTab(window);
var myData;
tabs.activeTab.attach({
contentScript: "self.postMessage(document.body.scrollHeight);",//recieves the total scroll height of tab
onMessage: function(data)
{
console.log("Tab data received: " + data);
myData = data;
var thumbnail = window.document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
window = tab.linkedBrowser.contentWindow;
thumbnail.width = window.screen.availWidth ;
thumbnail.height = window.screen.availHeight ;
var ctx = thumbnail.getContext("2d");
var snippetWidth = window.outerWidth ;
var snippetHeight = window.outerHeight ;
ctx.canvas.left = 0;
ctx.canvas.top = 0;
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = myData;//canvas height is made equal to the scroll height of window
ctx.drawWindow(window, 0, 0, snippetWidth, snippetHeight+myData, "rgb(255,255,255)");//

var imageDataUri=thumbnail.toDataURL('image/png');
imageDataUri = imageDataUri.replace("image/png", "image/octet-stream");
tabs.open(imageDataUri);
}
});

这是通过 addon sdk 1.17 完成的。工作很酷。

关于javascript - firefox addon sdk 1.17 截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com