Javascript image.onload在IE7中未触发两次
它适用于IE6和FireFox;但由于某些原因,IE7中没有 在页面_Init I上使用ASP.NET填充一个章节列表,这些章节是指向书中图像的链接,以及一个包含pageID的javascript数组 前 第1章-->href=“javascript:渗流(4);” 以下是我正在使用的实际代码:Javascript image.onload在IE7中未触发两次,javascript,javascript-events,internet-explorer-7,Javascript,Javascript Events,Internet Explorer 7,它适用于IE6和FireFox;但由于某些原因,IE7中没有 在页面_Init I上使用ASP.NET填充一个章节列表,这些章节是指向书中图像的链接,以及一个包含pageID的javascript数组 前 第1章-->href=“javascript:渗流(4);” 以下是我正在使用的实际代码: var availablePages = ['1002_001','1002_002','1002_003','1002_004','1002_005']; function seePage(ind
var availablePages = ['1002_001','1002_002','1002_003','1002_004','1002_005'];
function seePage(index) {
$get('imgSingle').src = 'graphics/loading.gif';
var img = new Image();
img.src = 'get.jpg.aspx?size=single&id=' + availablePages[index];
img.onload = function() {
var single = $get('imgSingle');
single.src = img.src;
}
}
当我点击第1章时,图像可以很好地加载到整个系统中(IE6,7,FF),点击第二章链接也可以工作;然而,在IE7中(并且只有在IE7中),点击同一章节两次(第1章、第2章,然后再点击第1章),图像是否会被卡在“加载”图像上。。。伙计们,我在这里拔头发…这是因为IE会缓存图像,并且在图像已经加载后,onload事件永远不会触发 您需要将onload事件放在src之前
var availablePages = ['1002_001','1002_002','1002_003','1002_004','1002_005'];
function seePage(index) {
$get('imgSingle').src = 'graphics/loading.gif';
var img = new Image();
img.onload = function() {
var single = $get('imgSingle');
single.src = img.src;
}
img.src = 'get.jpg.aspx?size=single&id=' + availablePages[index];
}
另一种方法是检查图像是否已加载
image.complete
。例如:
var img = new Image();
img.src = 'foo.jpg';
if(img.complete){
img.onload = function(){ /* ... */ };
} else {
/* execute something else, or the same. */
}
我在IE6和IE7中体验过这种行为。我喜欢swap image的jquery插件,愿上帝保佑你,先生。