javascript - NS_ERROR_NOT_AVAILABLE : Component is not available

标签 javascript canvas

我有一个问题。我正在尝试在 Canvas 上绘制图像。该图像不是来自 HTML 页面,而是位于一个文件中。这是我使用的代码:

var img = new Image();
img.src = "/images/logo.jpg";
this._canvas.drawImage(img, 300, 300);// this is line 14

现在,问题来了。这似乎不适用于 Firefox 和 IE10(我还没有在其他浏览器上测试过)。在 Firefox (21) 上我得到:

[19:09:02.976] NS_ERROR_NOT_AVAILABLE: Component is not available @ file:///D:/Watermellon/scripts/base-classes.js:14

在 IE10 上我得到:

SCRIPT16389: Unspecified error. 
base-classes.js, line 14 character 13

文件及其目录是:

root/index.html  
root/scripts/base-classes.js  
root/images/logo.jpg 

现在,当我将 img.src 更改为 URL(来自另一个站点的图像)时,一切正常,图像在延迟后自行绘制(因为它是从 url 获取的)。我做错了什么?

最佳答案

我猜问题是在您尝试使用图像之前尚未加载图像。试试这个:

var img = new Image();
img.onload = function () {
    this._canvas.drawImage(img, 300, 300);// this is line 14
};
img.src = "images/logo.jpg";

src 属性是在绑定(bind)事件之后设置的,因为缓存图像的 load 事件会立即触发(这是 IE 中的常见问题) .

根据您的结构,图像的路径可能是 images/logo.jpg (删除第一个 /)

关于javascript - NS_ERROR_NOT_AVAILABLE : Component is not available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17049176/

相关文章:

javascript - 使用 javascript 将 iframe contenteditable 中的内容绘制到 html5 Canvas 上

javascript - 点击时添加javascript?

javascript - Instagram JSON 响应重定向到登录 [Discord JS 和 Heroku]

javascript - 在顶部检测滚动事件(移动)

javascript - 如何在按下某个键时在 Canvas 上移动一个对象 (PACMAN)

javascript - 在鼠标进入和离开 Canvas 形状时添加和删除类

javascript - 如何制作 JavaScript HTML 5 Canvas 图像 "page flip",就像您在 Flash 中常见的那样?

javascript - 允许 nodejs session 转移到子域

javascript - TypeError:event.preventdefault不是函数

javascript - 使用拖动事件在 Canvas 上的图像上绘制矩形