我想知道如果查看圖像的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