图像。加载不射击两次在IE7
-
10-07-2019 - |
题
它的工作原理在IE6,并FireFox;但由于某些原因不在IE7.
使用ASP.NET 在Page_Init我填充名单的章节,连接到图像中的书以及一个javascript列拥有的组.
前。
第1章-->href="javascript:渗(4);"
这里是实际代码,我在使用:
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并点击的同一章中的两倍(chap1,chap2,然后chap1再次)不像遇到的装'图像...我拔出了我的头发在这里的家伙...
解决方案
它造成的,因为IE浏览器会缓存图像,并且它已经被加载后onload事件将永远不会触发。
您需要的SRC之前定位onload事件。
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和7这一行为。
不隶属于 StackOverflow