window.URL未定义

时间:2013-01-05 12:25:00

标签: javascript html5 asynchronous fileapi

我有一个填充blob的数组(它可以正常工作),我想在获得blob后立即将 Blob 转换为 Image

(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之后不立即调用匿名函数,它会抛出错误:

  

TypeError:window.URL未定义

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我想你应该检查你的参数b的值,以确保它确实有价值。听起来它没有,因此在构造过程中会导致window.URL未定义。

这听起来不像你是新手,所以我不会坐在这里告诉你如何调试,但我认为这是最好看的地方,从我在这里看到你的代码看起来是可以预料。

注意: Mark Dee所说的也是一个有效的选项,你应该确保文档准备就绪,然后尝试你的函数看看这是否有帮助。

的jQuery

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

旧JavaScript

window.onload = function ()
{
    //CODE HERE
}