我在IE 11中加载图像时出现问题。我在页面中显示优惠券(在RABAT主题中)。但有些缩略图没有上传。如果我只刷新页面显示的所有缩略图图像没有任何问题。 我的IE版本是11.0.9600.17959。 主要问题是某些图像未首次加载(而是出现红色十字图像),并且刚出现刷新图像。 如果我长按图像并单击显示图片,则会显示图像。 有人可以帮我解决这个问题吗?
由于 阿布舍克巴克
答案 0 :(得分:0)
如果在第一次尝试中没有正确加载,我会通过重新加载损坏的图像找到解决此问题的方法。 以下是此代码所在的git存储库位置和JS站点链接:
https://github.com/desandro/imagesloaded http://imagesloaded.desandro.com/
在您的页面中添加此js代码:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim pb1 As dispImg
pb1 = New dispImg()
pb1.picBox = PictureBox10
pb1.load("http://aipot.wowspace.org/imageapix.php?uid=iti2015&folderid=71&img=1&key=xxxxx")
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim pb1 As dispImg
pb1 = New dispImg()
pb1.picBox = PictureBox10
pb1.load("http://aipot.wowspace.org/imageapix.php?uid=iti2015&folderid=71&img=2&key=xxxxxxx")
主要方法是imgLoading.progress(function(img,isBroken)。
这个方法添加了一个简单的逻辑来重新加载图像(如果已损坏),通过添加时间戳,只是强制重新加载图像,以便浏览器将其视为新URL并转到服务器加载它而不是从缓存。像这样:
var imgLoading = ImagesLoaded(document); imgLoading.done(function () { console.log('All images loaded successfully'); console.log('Images: ', this.images); }); imgLoading.fail(function () { console.error('One or more images have failed to load'); console.log('Proper images: ', this.proper); console.log('Broken images: ', this.broken); }); imgLoading.always(function () { if (this.isDone) { console.log('All images loaded successfully'); } if (this.isFailed) { console.error('One or more images have failed to load'); } console.log('Proper images: ', this.proper); console.log('Broken images: ', this.broken); } ); imgLoading.progress(function (img, isBroken) { console.log('This image has finished with loading:', img); console.log('The image is ' + (isBroken ? 'broken' : 'properly loaded')); if (isBroken){ img.src = img.src+"?time=" + new Date(); } // Current state of loading console.log('Pending images:', this.pending); console.log('Loaded images:', this.loaded); console.log('Proper: ', this.proper); console.log('Broken: ', this.broken); } );
就是这样。如果损坏,现在图片将至少重新加载一次。