等待图像加载与JQuery Deferred ...我只是不明白

时间:2018-08-21 07:33:57

标签: javascript jquery

我已经在工作了几个小时,但我却没有使它工作:-(

我在JavaScript中有一个base64字符串,并且希望有一个HTML标签,其大小属性如下: <IMG src="data:image; base64,....." style="height:....">

我需要这样使用:var imageHTML = buildIt(base64code);

最后我知道,我需要一个onload事件来获取图像的大小,并且需要使用JQuery Deferred等待这些步骤,然后才能返回漂亮的HTML字符串...

我的功能如下:

function imagize(base64) {
   $.when(imgLoader(base64)).done(function($img){
      return $img[0].outerHTML;
   })
}

function imgLoader(base64) {
   var deferred = $.Deferred();
   var i = new Image();
   i.onload = function() {
      var $img = $("<img>");
      $img.attr('src',i.src);
      $img.width(i.width);
      $img.height(i.height);
      defered.resolve($img);
   };
   i.src = "data:image; base64, "+base64;
   return deferred.promise();
}

怎么了?它不会工作...

Thx,迈克

编辑: 这不是如何做的重复! 我已经尝试过使用JQuery Deferred的东西了……我知道我需要使用它。问题不是我如何等待异步的东西,但是为什么我的代码无法工作。

0 个答案:

没有答案