我想知道如果查看图像的height
属性是查看它是否已加载的可靠方法。加载图像时运行回调
比方说,我得的图像的参考,像这样:
var img = document.getElementById('myImg');
如果我想运行一些代码,依靠在图像上加载,我可以把它放在一个回调,并运行img.onload = myCallback;
。
但是,如果图像已经加载之前此代码运行,则回调将不会执行。
这是一个可能的解决方案:
if (img.height && img.height > 0) {
myCallback();
}
else {
img.onload = myCallback;
}
换句话说:运行myCallback
现在如果图像已被加载,否则等到它的加载。
但我有一种感觉,这个代码可能是脆弱的......它会在所有情况下工作吗?有没有更安全或更优雅的做法?
是图像添加到DOM动态(通过JavaScript),或者是它的基础上的'来自HTML源代码的''元素? – 2011-04-12 10:48:02
在这种情况下,在HTML代码中。我的JavaScript在img元素被解析后运行,所以它甚至可能已经被加载(特别是如果它在缓存中),或者它可能尚未加载。 – callum 2011-04-12 10:52:49