web-dev-qa-db-ja.com

JQueryは、document.readyを実行する前に、画像が読み込まれるのを待機しています

更新: このバグは、少なくとも他の2人によって確認されています。私の投稿全体を読んでいない場合でも、これを読んでJQuery 1.3.1を使用している場合は、使用を停止してください DOMが完了したが、ページの画像が読み込まれる前に実行するハンドラー。

Update2チケットへのリンク を投稿してくれた Tom (ユーザーID 20!)に感謝しますjQueryバグトラッカーで。

Update3-2009/01/28:この問題は適切に解決されました(1.2.6に戻すことができない場合)。現在1.3.1を使用していて、すぐに修正が必要な場合は、以下の承認済みの回答を読んで方向性を確認してください。ジョンに感謝します。


JQuery 1.3.1にアップグレードしたところ、最愛の人に気付くのに数時間かかりました

$(function( ) {  ... }

構文は、関数本体を実行する前に、ページ全体(画像を含む)がロードされるのを待機していました。 Yahooのメニューを統合しようとしたときに 奇妙な振る舞い を見ていました。 (幸い、ページに画像の読み込みが遅いため、問題に気づきました)!

もっと複雑なことが起こっていると思ったのでテストファイルを作成しましたが、この単純なファイルでも同じ症状が見られました。

<head>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>   
   <script>
    $(function() {    
      alert("Ready"); 
    });
  </script>
</head>

<body>      
  <img src="<PATH_TO_DYNAMIC_IMAGE>_1.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_2.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_3.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_4.jpg" />       
</body>

JQueryのバージョンが異なれば、結果も異なります。

  • バージョン1.2.6で発生するのは、アラートボックスがすぐに表示され、その背後に画像が読み込まれていることです(予期され、文書化された動作)。
  • バージョン1.3.1で発生するのは、画像がすべて読み込まれ、その場合にのみアラートボックスが表示されることです。

どうしたの!これは新機能(理由は想像できません)ですか、それともバグですか?

重要:これはIEでのみ問題になり、Firefoxではないようです)

申し訳ありませんが、他の人が見やすくするために公開されている動的画像ファイルがありません。テストしたい場合は、グーグル画像からランダムに選択した大きな画像ファイルを使用して、キャッシュをクリアすることをお勧めします。

47
Simon_Weaver

これはjQueryのバグによるものでした# 2614 および# 88 -1.2.6のIEおよび1.3では-そして今では1.3.1で別の問題のセット。

より大きな議論はここで見つけることができます:
http://groups.google.com/group/jquery-dev/browse_thread/thread/3abf45d3fd4d50fc

また、問題に関連するチケットはここにあります(修正に関する追加の問題を見つけた場合は、チケットを再度開いて、上記のjquery-devスレッドに投稿してください):
http://dev.jquery.com/ticket/3988

私はこれに対する修正をSVNrev 617 に上陸させました。

1.3.2ファイナルが出るまで使用できる新しいナイトリーをプッシュしました。
http://code.jquery.com/nightlies/jquery-2009-01-28.js

修正が遅れて申し訳ありません-今週旅行していました。

57
John Resig

これが私が提出したチケットの更新です@ Webdawson がサンプルページをチケットに添付したようです。

4
Tom

ユニットテストできないことがいくつかあります。 IE6 +7および1.3.1で確認されました。なんて大きな退行だ。

それで、これを報告する時間はありますか?チェックしたばかりで、1.3.1の既知のバグではありません。

4
Crescent Fresh

はい、例を追加しました。明らかにIE6と7のバグです(他のIEバージョン)ではテストしていません)。1.3.1バージョンにはたくさんあるようです。バグの。:(

リンクの例を次に示します。 http://www.kollermedia.at/jquery_bug.html

3
Webdawson