1

画像を確認するための簡単なスクリプトがありますが、iOS 5.1 の iPad では正しく動作しません。画像ではjpgのストリームを受け取るため、ロードは各フレームで動作する必要があります(ビッグサファリのように)が、iPadでは1回しか起動しません。いくつかの提案がありますか?

$('#image').load(function(){
    console.log(new Date().getTime(););
});
4

2 に答える 2

3

jQuery の公式 Web サイトで言及されています。

画像で使用する場合の load イベントの注意事項

開発者がショートカットを使用して解決しようとする一般的な課題.load()は、画像 (または画像のコレクション) が完全に読み込まれたときに関数を実行することです。これには注意すべき既知の警告がいくつかあります。これらは:

  • クロスブラウザーで一貫して確実に動作しない
  • 画像の src が以前と同じ src に設定されている場合、WebKit で正しく起動しません。
  • DOM ツリーを正しくバブルアップしない
  • ブラウザのキャッシュに既に存在する画像の起動を停止することができます
于 2012-09-07T12:26:16.783 に答える
0

@Parv-sharma が言ったように、.load は信頼できません。ここで同じ経験。

これがレスポンシブ画像調整のようなものである場合(推測のみ)、これが回避策の最善の可能性です。

  1. もちろん、中央の resizeScript() があります。img.height() === 0 ケースを必ずキャッチしてください。その場合は、優雅な劣化、別名デフォルト、非 js スケーリングに固執してください。(読む: 今のところ何もしないでください)

  2. resizeScript() を最大 3 回起動します

    image.load() で、jQuery.ready() で、最後に数ミリ秒後に遅延したものです。

    setTimeout( App.adjustFullsize ,300);
    

    それはどちらも害はありません (以前の呼び出しの 1 つが既にジョブを実行した場合、または失敗し続ける場合) が、イメージも「公式に」読み込まれるようになったという良い変更があります...

(ああ、4 回目です。おそらく resize() (つまり、デバイスの回転) イベントにも登録する必要があります...) .

于 2014-12-15T16:51:42.173 に答える