NS_ERROR_NOT_AVAILABLE: le Composant n'est pas disponible
J'ai un problème. Je suis en train d'essayer de dessiner une image sur une toile. L'image n'est pas à partir de la page HTML, mais sur un fichier. Voici le code que j'utilise:
var img = new Image();
img.src = "/images/logo.jpg";
this._canvas.drawImage(img, 300, 300);//this is line 14
maintenant, voici le problème. Cela ne semble pas fonctionner sur Firefox et IE10 (je n'ai pas encore testé sur d'autres navigateurs). Sur Firefox (21) - je obtenir:
[19:09:02.976] NS_ERROR_NOT_AVAILABLE: Component is not available @ file:///D:/Watermellon/scripts/base-classes.js:14
et sur IE10-je obtenir:
SCRIPT16389: Unspecified error.
base-classes.js, line 14 character 13
Les fichiers et leurs répertoires sont:
root/index.html
root/scripts/base-classes.js
root/images/logo.jpg
Maintenant, quand je change l'img.src-URL (une image à partir d'un autre site) tout fonctionne bien, l'image se dessine après un délai(pour les obtenir à partir de l'url). Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
Je vais deviner le problème est que l'image n'est pas encore chargé, avant de tenter de l'utiliser. Essayez ceci:
La
src
propriété est définie après de liaison de l'événement en raison d'une mise en cache de l'imageload
événement se déclenche immédiatement (ce qui est un problème commun dans IE).Et en fonction de votre structure, le chemin vers l'image serait probablement
images/logo.jpg
(la suppression de la première/
)img.src = "images/logo.jpg";
- notez l'/
j'ai laissé de côté au début de la chaîneVous avez besoin d'attendre pour l'image à charger avant de tenter de le mettre dans une toile:
Le problème qui, je pense, ici, c'est quand les ressources seront-elles disponibles?, mais il y a un moyen de confirmer que les ressources sont disponibles, il suffit de cocher "complète" de l'attribut de l'objet image.
Aussi, vous pouvez faire une méthode de fusion avec l'événement onload et un retard de la méthode que de vérifier à la fois des choses.
Ce travail est pour moi!!! sur IE et FF.