2011-07-26 19 views
0

onloadがトリガーされる前に、ページの読み込み中にすべての画像をキャッチすることはできますか?ページの読み込み中にすべての画像をキャッチ

onloadイベントの後、すべてのイメージを背景にいくつかのAjaxアイコンとともにロードしたいとします。

+0

http://stackoverflow.com/questions/1206937/javascript-domready あなたのために働くかもしれない、ページが読み込まれている間) – walialu

答えて

2

あなたはonloadイベントを使用せずに、ページ内の任意のJavaScriptコードを実行することができます(http://bytes.com/topic/javascript/answers/147703-there-any-call-before-body-onloadを参照)

<html> 
    <head> 
     <script>alert(0)</script> 
    </head> 
    <body onload="alert(2)"> 
     ... (content) ... 
     <script>alert(1)</script> 
    </body> 
</html> 

(アラート順:0、1、2)

今、 alert(1)の時点で、document.getElementsByTagName()を使用して、imgタグを選択して、必要なものを何でもできます。表示されたスクロール領域に入るまでイメージのロードを延期するスクリプトを作成することも可能です。これは画像付きの膨大なリストに便利です。

しかし、より簡単な解決策は、CSSを使用し、各img要素に背景画像を適用することです。

+0

私はこのtehniqueを知っています、それは遅延ロードと呼ばれています。どの段階でこれを「イメージの読み込みを延期する」ことが可能ですか?ありがとう;)私はイメージがDOM準備完了イベントの後でレンダリングされることを理解している? – Somebody

+0

完全なページ(イメージを含む)がレンダリングされるとDOM readyが呼び出されます。 (http://api.jquery.com/ready/を参照してください) – Pindatjuh

+0

私はスタックdocument.getElementsByTagName( 'img')から画像を削除しようとしているとき、その半分は未定義です。私は文書の最後に、の直前にそれを試しています。それが私が求めている理由です – Somebody

0

移行要素を使用することを検討してください。これはオンロードに置き換えることができます。

<a rel="image" href="path/to/img"><img src="loader.gif"></a> 

埋め込みフラッシュ。

+0

はJavaScriptでこれを行うことができますか? – Somebody

+0

これはテンプレートに実装するのが最善です...あなたがPindatjuhの答えに行くことができない場合 –

関連する問題