以下は、準備ができている (ダウンロードされた) いくつかのサムネイルを結合し、それらを特定の方法で DOM に挿入するために使用するコードのサンプル (必要なセクションのみを抽出したもの) です。JSLint はこのコードを OK として渡しますが、FF/Firebug は以下のセクションで失敗し、「TypeError: readyHTML が null です」というエラーが表示されます。私はそれを宣言this.readyHTML = new ReadyHTML();
してから、クロージャーからvar self = this;
参照しようとさえしました。基本的に、img.onload のクロージャー内から readyHTML オブジェクトにアクセスして更新できるようにする必要があります。それは可能ではありませんか?何か間違ったことをしていると思いますが、どこで/どのように/なぜなのかわかりません。self.readyHTML
img.onload = function () {};
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
}