我有一个填充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引用了它。 (由于我的声誉很低,不能自行回答)
答案 0 :(得分:1)
我有一个名为URL的全局范围变量没有值,因此window.URL引用它。
答案 1 :(得分:0)
我想你应该检查你的参数b
的值,以确保它确实有价值。听起来它没有,因此在构造过程中会导致window.URL
未定义。
这听起来不像你是新手,所以我不会坐在这里告诉你如何调试,但我认为这是最好看的地方,从我在这里看到你的代码看起来是可以预料。
注意:强> Mark Dee所说的也是一个有效的选项,你应该确保文档准备就绪,然后尝试你的函数看看这是否有帮助。
的jQuery
$(document).ready(function() {
//CODE HERE
});
旧JavaScript
window.onload = function ()
{
//CODE HERE
}