以下是我打算用来组合准备好(下载)的几个缩略图然后以某种方式将它们插入DOM的代码示例(仅提取必要部分)。 JSLint将此代码传递给OK,但FF / Firebug在下面的部分失败了,我得到一个错误,说“TypeError:readyHTML为null”。我甚至试图声明this.readyHTML = new ReadyHTML();
和var self = this;
,然后将其从self.readyHTML
关闭引用为img.onload = function () {};
。基本上我需要能够从img.onload的闭包中访问和更新readyHTML对象。不可能吗?我认为我做错了但我无法弄清楚在哪里/如何/为什么。
function ReadyHTML() {
"use strict";
this.buffer = [];
ReadyHTML.prototype.append = function (string) {
this.buffer.push(string);
return this;
};
return true;
}
function f() {
"use strict";
var readyHTML = new ReadyHTML();
var img = new Image();
var image_url;
img.onload = function () {
readyHTML.append('<a href=""><img src="' + image_url + '" class="xph4 ca"/></a>');
};
image_url = "some/url/to/an/image";
img.src = image_url; // This calls img.onload whence the error comes
}