2012-05-01 3 views

答えて

10

影響を受けるブラウザはわかりませんが、確認するのは簡単です。

var img = new Image(); 
img.src = "foo.jpg"; 
if (img.complete || img.readyState === 4) { 
    // image is cached 
    doneCallback(); 
} 
else { 
    $(img).on('load',doneCallback); 
} 

UPDATE

あなたは周りのコードを変更した場合、それは一貫してすべてのブラウザで、ロードイベントを発生します。

+0

ブラウザにイメージがキャッシュされている場合、最初にロードチェックを実行せずにsrcを設定した後に直接ロードされますか? – ddlshack

+0

はい、ロード・コールバックをトリガーしないことがあります。そのため、既に読み込みが完了しているかどうかが最初にチェックされます。すでにロードが完了している場合は、ロードイベントがトリガされないため、バインドしません。 –

+0

画像srcを変更する前にloadイベントがバインドされている場合はどうですか?これにより、ロードイベントが常に発生しますか? – ddlshack