使用HTML Canvas& Greasemonkey无法在2D上下文中绘制图像()

时间:2010-01-17 13:56:31

标签: javascript firefox html5 canvas greasemonkey

在我的Greasemonkey脚本中,当我获得HTMLImageElement的句柄时,我希望与HTML Canvas一起使用,我在Firefox的错误控制台中得到以下错误(我认为这是因为它包含在XPCNativeWrapper中)

Error: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) 
       [nsIDOMCanvasRenderingContext2D.drawImage]

在我的代码中放置GM_log()语句,我已经跟踪了我尝试使用的图像对象,直到我尝试将其与HTML Canvas一起使用。 < / p> <击>

它始终包含在XPCNativeWrapper中:

[object XPCNativeWrapper [object HTMLImageElement]]

<击>

我已通过HTMLImageElement获取对image.wrappedJSObject的引用来解开var canvas = document.createElement("canvas"); canvas.width = image.width; canvas.height = image.height; var ctx = canvas.getContext("2d"); ctx.drawImage(image, 0, 0);

我的画布代码:

{{1}}

为什么Firefox会抛出上述组件故障代码?

4 个答案:

答案 0 :(得分:1)

我应该更全面地了解Google。

image.wrappedJSObject;

作品。

答案 1 :(得分:0)

var canvas = document.createElement("canvas").wrappedJSObject,
ctx = canvas.getContext("2d");

canvas.width = image.width;
canvas.height = image.height;

ctx.drawImage(image, 0, 0);

这就是我所做的。希望它有所帮助

答案 2 :(得分:0)

我遇到了同样的问题。当我使用图像的绝对/完整URL时,错误就消失了。此外,正如其他人注意到的那样,请确保首先加载图像,或者首先在javascript中创建一个新的Image()。

答案 3 :(得分:0)

firefox 3.6.16的工作示例(我有类似的问题):

http://userscripts.org/scripts/review/106800