0

我有一个填充有 blob 的数组(它工作正常),我想在得到 blob 后立即将blob转换为图像

(function(index) {

    images[index] = new Image();

    xhr.onload = function() {

        blobs[index] = new Blob([this.response], {type: 'image/png'});

        console.log(index + " loaded.");
        console.log(blobs[index]); // It works as expected.

        (function(b) {

            var img = window.URL.createObjectURL(b); // window.URL is undefined.
            console.log(img); // Failed.

        })(blobs[index]);

    };

})(i);

匿名函数不会在 之后立即调用console.log,它会引发错误:

类型错误:window.URL 未定义

我正在使用 Firefox 17,它已经具有window.URL功能,所以这不是问题。实际上,我可以在这个函数之外使用 window.URL。

编辑:我有一个名为 URL 的全局范围变量,没有值,所以 window.URL 引用了它。(由于我的声誉低,无法自我回答)

4

2 回答 2

1

我有一个名为 URL 的全局范围变量,没有值,所以 window.URL 引用了它。

于 2013-01-10T22:34:49.707 回答
0

我想您应该检查参数的值b以确保它确实具有价值。在我看来,它没有,因此将导致window.URL在施工期间未定义。

听起来您对此并不陌生,所以我不会坐在这里告诉您如何调试它,但我认为这是最好的查看位置,从我在这里看到的内容来看,您的代码看起来符合预期。

注意: Mark Dee 所说的也是一个非常有效的选项,您应该确保文档已准备好,然后尝试您的功能,看看是否有帮助。

jQuery

$(document).ready(function() {
   //CODE HERE
});

旧 JavaScript

window.onload = function ()
{
    //CODE HERE
}
于 2013-01-05T12:33:28.087 回答