2011-09-28 4 views
5

Sto cercando di precaricare immagine sul evento click:Javascript Immagine Oggetto - gestire l'evento onload

// new image object 
var imgObject = new Image(); 

// assign the path to the image to the src property 
imgObject.src = document.URL + 'image/image.jpg'; 

// check if image has loaded 
if (imgObject.complete) { 

Ma la chiamata completa mai restituisce true al primo scatto - idea di quello che mi manca qui?

risposta

10

.complete è una proprietà dell'oggetto immagine, non un evento a cui è possibile collegarsi. Utilizzare l'evento onload:

var image = new Image(); 
image.onload = function() { 
    alert('image loaded'); 
}; 
image.src = document.URL + 'image/image.jpg'; 

Nota: Assicurarsi di allegare alla curva onload prima di impostare l'attributo di origine.

Nota Spiegazione: Image caching. Se l'immagine viene memorizzata nella cache, l'evento onload verrà attivato immediatamente (a volte prima di impostare l'handler)

+0

beh - Non posso davvero, deve essere su clic - e apre l'url preso dall'attributo href dello tag - a meno che ovviamente non abbia frainteso il tuo suggerimento. – user398341

+1

può trovarsi all'interno del gestore di clic ... –

+0

Perché è importante chiamarlo prima che la proprietà src sia impostata? – user398341