var extensions = ['.jpg', '.png', '.gif']; var imageElements = document.getElementsByClassName('main-illust'); // 使用传统的循环替代 Array.from().forEach for (var i = 0; i < imageElements.length; i++) { (function() { var imageElement = imageElements[i]; var baseUrl = imageElement.src; tryLoadImage(imageElement, baseUrl, 0); })(); // 使用立即执行的函数表达式,避免循环中闭包问题 } function tryLoadImage(imageElement, baseUrl, extensionIndex) { if (extensionIndex >= extensions.length) { console.log("无法加载图片,隐藏图片。"); imageElement.parentElement.style.display = 'none'; return; } var timestamp = new Date().getTime(); var newSrc = baseUrl + extensions[extensionIndex] + "?t=" + timestamp; var img = new Image(); img.onload = function() { imageElement.src = newSrc; imageElement.style.display = 'block'; console.log("图片加载成功:", newSrc); }; img.onerror = function() { tryLoadImage(imageElement, baseUrl, extensionIndex + 1); }; img.src = newSrc; }