1

ie9/ie10 を使用して、base64 イメージのサイズを検出しようとしています。私のコードは、他の現在のブラウザーで動作します。これらは私が従う手順です:

  1. base64 文字列を ajax ダウンし、
  2. 新しい Image() オブジェクトを作成し、
  3. base64 文字列を src として設定し、
  4. imagesloaded を使用するか、onload イベントを待ちます

しばらくすると、正常にロードされたコールバックが到着しますが... 画像のサイズは 1x1 として報告されます。時々。それ以外の場合は、問題なく動作します。

では...画像が...デコードされたことをどのように検出しますか? ここで何が起こっているのかわかりません。

4

2 に答える 2

0

onloadコールバックを使用します。最初にサイズを取得しようとしたとき、画像はまだダウンロードされていません。サイズを間違えるのはそのためです。

image.onload = function () {
  console.log(this.width);
}
于 2013-05-10T18:16:18.457 に答える
0

widthの代わりにnaturalWidthを使用してみてください。Internet Explorer 10で動作します。

于 2013-07-04T13:18:38.770 に答える