在我的Greasemonkey脚本中,当我获得HTMLImageElement的句柄时,我希望与HTML Canvas一起使用,我在Firefox的错误控制台中得到以下错误(我认为这是因为它包含在XPCNativeWrapper中)击>:
Error: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE)
[nsIDOMCanvasRenderingContext2D.drawImage]
在我的代码中放置 < / p> <击>
GM_log()
语句,我已经跟踪了我尝试使用的图像对象,直到我尝试将其与HTML Canvas一起使用。
它始终包含在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会抛出上述组件故障代码?
答案 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的工作示例(我有类似的问题):