我正在将JavaScript与jQuery库一起使用,以操作无序列表中包含的图像缩略图。加载映像后,它会做一件事;发生错误时,它会做其他事情。我正在使用jQuery load()和error()方法作为事件。 在这些事件之后,我检查图像DOM元素中的.complete,以确保在jQuery可以注册事件之前尚未加载图像。
load()
error()
它正常工作,除非在jQuery可以注册事件之前发生错误。 我能想到的唯一解决方案是使用img onerror属性在全局某处(或在其自身的节点上)存储“标志”,该标志表示失败,因此jQuery在检查.complete时可以检查该“存储/节点”。
onerror
有人有更好的解决方案吗?
编辑:加粗要点,并在下面添加额外的细节: 我正在检查图像是否完整(也称为加载),之后在图像上添加了加载和错误事件。这样, 如果图像是在事件注册之前加载的,我仍然会知道。 如果在事件之后未加载图像,则事件将在事件发生时对其进行处理。问题是,我可以轻松检查图像是否已经加载,但是 我不能确定是否发生错误。
另一种选择是通过创建内存图像元素并将其属性设置为原始图像的原始属性来触发onload和/或onerror事件。这是我的意思的示例:src``src
onload
src``src
$("<img/>") .on('load', function() { console.log("image loaded correctly"); }) .on('error', function() { console.log("error loading image"); }) .attr("src", $(originalImage).attr("src")) ;
希望这可以帮助!