iPhone/iPad で SVG を表示しようとしています。このコードは ASP.Net ページで実行されています。Raphael を使用して、Raphael が処理するグラフィックとその他すべてのジャズを表示しています。ただし、実際には iOS で実行されないコードがあります。
img = new Image();
//img.onload = function () { drawLayersWhenAllAreLoaded(); };
if (img.addEventListener) {
img.addEventListener('load', drawLayersWhenAllAreLoaded, false);
}
else {
img.attachEvent("onload", function () { return (drawLayersWhenAllAreLoaded.call(img, window.event)); });
}
img.src = files[i];
Windows の Chrome、Firefox、および Safari でこれをテストしましたが、うまく機能します。Mac OS X の Chrome、Firefox、および Safari でこれをテストしましたが、うまく機能します。ただし、iOS (iOS 6 か iOS 7 か、iPhone か iPad かは問いません) で実行する場合、drawLayersWhenAllAreLoaded
関数は実行されません。実行されない場合、画像は画面に表示されません。
これは私がテストした最終的なコードです。iOSをチェックしないことをテストしました。だけを使用してテストしましたimg.onload
。使ってみただけimg.addEventListener
です。最も単純なものから最も複雑なものまで、このコードのすべてのバージョンを試してみましたが、まったく機能しません。にアラートを配置すると、drawLayersWhenAllAreLoaded
上記のすべてのブラウザーで表示されますが、iOS では表示されません。
私の理解ではsrc
、HTML/jQuery で画像の を設定すると、画像が読み込まれます。画像はかなり大きくなる可能性があるため、呼び出す前にすべての画像が読み込まれるのを待つ必要がありますdrawLayersWhenAllAreLoaded
(このコードは、一連の画像を読み込むループ内にあります)。
似たようなものを探して何時間も Google を検索しましたが、何も見つかりませんでした。誰かがこれに再び遭遇したかどうか、または私が間違っていることを知りたいですか?
ありがとう。
編集済み:
さらにテストを重ねた結果、drawLayersWhenAllAreLoaded
攻撃を受けるのは 1 回だけであることがわかりました。現在、32枚の画像を読み込もうとしています。画像をロードするコードは iOS で 32 回実行されますが (毎回アラートを追加すると表示されます)、drawLayersWhenAllAreLoaded
は 1 回しか呼び出されません。