0

次のコードは、Chrome、Safari、および Firefox では魅力的に機能しますが、私の iPad2 iOS5 では機能しません。

function preImage(url,callback){
  var img = new Image(); 
  img.src = url;

  if (img.complete) { 
    callback.call(img);
    return; 
  }

  img.onload = function (){ 
     callback.call(img);
  };
}
(function() {
  var my_canvas=document.getElementById("myCanvas");
  var context=my_canvas.getContext("2d");
  preImage("img/test.png",function(){
    context.drawImage(this,0,0);
  });
})(); 
4

1 に答える 1

1

以下は、両方とも IOS6 を実行している私の iPhone と iPad シミュレーターで正常に動作するようです。あなたがIOS5と言ったのに気づきました、タイプミスですか?または意図した?

var preImage = function(url, callback){
    var img = new Image(); 
    img.src = url;

    if (img.complete) { 
        callback.call(img);
        return; 
    }

    img.onload = function (){ 
        callback.call(img);
    };
};
(function() {
    var my_canvas = document.getElementById("myCanvas");
    var context = my_canvas.getContext("2d");
    preImage("img/picture.jpg", function(){
        context.drawImage(this,0,0);
    });
})();

「;」が追加されていることに注意してください。preImage 宣言の後。

于 2013-01-26T09:10:31.857 に答える