0

アラートは機能しますが、戻り値は 0 です。正しい値を返すにはどうすればよいですか?

var img;
img = new Image();
img.onload = function() {
   alert(img.width);
   return(img.width);
};
img.src = "https://maps.gstatic.com/mapfiles/dir/bike.png";
alert(img.width);
4

3 に答える 3

3

そんなことはできません。 onloadイメージがロードされると実行されます。つまり、 を設定した後srconload後で実行されます。

画像の幅を扱うすべてのコードを 内に配置する必要がありますonload

于 2012-06-07T15:41:53.263 に答える
2

値を返すことはできますが、それをキャプチャする方法はありません。

onload画像が読み込まれると、渡された関数が実行されます。しかし、そこで戻り値を取得する方法はありません。値を処理するために、内部で別の関数を呼び出すことができます。

于 2012-06-07T15:42:39.590 に答える
0

10Chrome で次のコードから取得します。

var img = new Image();
img.onload = function() { console.log(img.width); }
img.src = "https://maps.gstatic.com/mapfiles/dir/bike.png";

幅を照会する前に、画像がロードされるのを待つ必要があります(onload)。

于 2012-06-07T15:44:36.627 に答える