画像が読み込まれたかどうかを判断するための記事はインターネット上にたくさんありますが、一部のブラウザには適していません。次のエディタでは、画像が読み込まれたかどうかを判断するための JavaScript メソッドの概要をいくつか紹介します。は次のとおりです:
1.onload イベント
画像の onload イベントをリッスンすることで、画像がすべてのブラウザと互換性があるかどうかを判断できます (w3c 推奨の方法)。コード例は次のとおりです。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg" alt=""> <script> // 方法一:图片已经下载完 document.getElementById('img1').onload = function(e){ e.stopPropagation(); alert(1); } </script> </body> </html>
2. img オブジェクト (DOM) の完全な属性を決定します
画像がロードされると、完全なオブジェクト属性が true になります。コード例は次のとおりです。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg" alt=""> <script> // 方法二:img的complate属性 var timer = setInterval(function(){ if (document.getElementById('img1').complete){ clearInterval(timer); alert(1); console.log(document.getElementById('img1').complete) } }, 10); </script> </body> </html>
この方法は個人的にテストされており、すべてのブラウザと互換性があります
Three.onreadystatechange イベント
IE では、img オブジェクトには xhr オブジェクトと同様に onreadystatechange イベントがあり、このイベントを使用して画像がロードされているかどうかを判断できます。コード例は次のとおりです。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg" alt=""> <script> document.getElementById('img1').onreadystatechange = function() { if(document.getElementById('img1').readyState=="complete"||document.getElementById('img1').readyState=="loaded"){ alert(1); } } </script> </body> </html>