Dans mon script Greasemonkey, lorsque j'obtiens un handle sur un HTMLImageElement que je veux utiliser avec un canevas HTML, j'obtiens l'erreur suivante dans la console d'erreur de Firefox
(Je suppose que c'est parce qu'il est enfermé dans un XPCNativeWrapper)
:Problèmes d'utilisation de HTML Canvas & Greasemonkey impossible de dessinerImage() sur le contexte 2D
Error: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE)
[nsIDOMCanvasRenderingContext2D.drawImage]
Mettre
GM_log()
déclarations tout au long de mon code, j'ai tracé l'objet image que je suis en train d'utiliser à partir de son affectation initiale par jusqu'à ce que j'essaie d'utiliser avec un canevas HTML.
Il est toujours enveloppé dans un XPCNativeWrapper:
[object XPCNativeWrapper [object HTMLImageElement]]
J'ai déballé le HTMLImageElement
en obtenant référence avec image.wrappedJSObject
.
Mon code de toile:
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(image, 0, 0);
Toutes les idées pourquoi Firefox est de lancer le code de défaillance d'un composant ci-dessus?
Je n'ai pas apposé cet élément de toile au DOM/corps - ce serait poser un problème? –
En regardant un autre exemple de code, j'ai essayé 'unsafeWindow.document.createElement (" canvas ")' mais je n'ai jamais réussi à le faire fonctionner correctement. Changé mon approche, un peu plus clumsey, re-demandé l'image via AJAX avec le type MIME forcé à "texte" pour lire les données d'image. –
Je ne peux pas reproduire un bug, parce que je ne sais pas ce qu'est 'image'. – NVI