Trong trình xử lý OnLoad
trang web của tôi, tôi đang cố kiểm tra xem tất cả hình ảnh đã được tải chính xác hay chưa.Làm thế nào để kiểm tra xem hình ảnh đã được tải bằng Javascript chưa?
Tôi đang lặp lại trên tất cả các thẻ <img>
và kiểm tra chúng bằng chức năng isImageLoaded()
của tôi. Rất tiếc, chức năng của tôi chỉ hoạt động với Firefox và IE lên phiên bản 8.
Bất kỳ đề xuất nào về cách làm cho IE hoạt động trong IE 9 và 10?
function isImageLoaded(img) {
// check for IE
if (!img.complete) {
return false;
}
// check for Firefox
if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
return false;
}
// assume it's ok
return true;
}
Cập nhật: Hóa ra thủ phạm chính là onload có thể bị sa thải trước khi tất cả các hình ảnh được nạp bởi IE9 +. Điều gì sẽ là một kích hoạt tốt hơn để kiểm tra các hình ảnh trong trang? Tôi muốn kiểm tra tất cả chúng cùng một lúc và không phải với các trình xử lý OnLoad/OnError cá nhân.
Cảm ơn sdespont! Tôi đang cố gắng tránh sử dụng thư viện để giảm kích thước trang. –
Bạn đã thử chỉ cần thêm trình xử lý sự kiện 'onload' cho mỗi hình ảnh và đếm số lần chúng kích hoạt? –
Tôi hiện đang sử dụng trình xử lý OnLoad của trang. Tôi sẽ giả định rằng chỉ được gọi một lần. Bạn có nghĩ rằng IE 9 + 10 gọi nó trước khi hình ảnh được tải hoàn toàn không? –