我使用插件 sdk创建了一个 Firefox 插件。我正在尝试使用画布 drawWindow函数。
我有以下代码来使用该函数,其中 ctx 指的是画布上下文,我使用canvas.getContext("2d")
.
ctx.drawWindow(window, 0, 0, 100, 200, "rgb(255,255,255)");
当我运行此代码时,在使用附加的脚本中
tabs.activeTab.attach({
contentScriptFile: data.url("app.js") // app.js contains the above line of code
});
我收到以下错误:
TypeError: ctx.drawWindow is not a function
当我在同一个 ctx 对象上调用诸如 strokeRect 和 fillRect 之类的函数时,不会发生此错误。
此页面上的文档说您需要 chrome 权限才能使用代码,所以这可能是个问题。根据函数的代码,我预计会出现不同的错误。
我发现我可以使用this在我的插件中添加 chrome 权限,但是接下来我会做什么来使用 ctx.drawWindow?
此外,当我从页面上的暂存器而不是插件而不是“错误:操作不安全”运行此问题中的代码时,我得到相同的“异常:ctx.drawWindow 不是函数”。
所以,基本上我要问的是,我将如何在使用插件 sdk 创建的插件中使用画布 drawWindow?
编辑:我正在尝试这样做,因为我需要一种方法来访问渲染页面的各个像素。我希望将页面绘制到画布上,然后使用getImageData访问像素。如果有其他方法可以访问单个像素(在 Firefox 插件中),那也会很有帮助。