javascript - image.onload 在 IE7 中不触发两次

标签 javascript dom-events internet-explorer-7

它适用于 IE6 和 FireFox;但出于某种原因不在 IE7 中。

在 Page_Init 上使用 ASP.NET 我填充了一个章节列表,这些章节是指向书中图像的链接以及一个保存页面 ID 的 Javascript 数组。

例如

第 1 章 --> href="javascript:seePage(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)上都可以正常加载,并且单击第 2 章链接也可以;但是,在(并且仅在)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];
}

关于javascript - image.onload 在 IE7 中不触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1038327/

相关文章:

javascript - jQuery scrollTop 第一次不滚动

javascript - react : Prevent scroll when modal is open

javascript - 当两个窗口都是模态时刷新父窗口

javascript - Safari 视频元素不会在 403 响应时触发错误事件

javascript - 有没有办法在 IE7 中获取更详细的 JS 错误消息?

javascript - 无法设置特定数据的条形图宽度,Highcharts

javascript - 使用变量存储 "change.doc"路径

javascript - 堆叠的 Canvas 元素,最顶层的 Canvas 阻止事件到达其他 Canvas

IE 中的 CSS : Background image position is not updated on ajax update

javascript - Internet Explorer 第 1 行字符 1 代码 0 错误