2012-08-04 9 views
6

Sto modificando alcune immagini su tela e quindi l'impostazione di src di queste immagini in nuove immagini codificate in base64.Forza firefox per ricaricare l'immagine dopo il cambio img.src

img.src = changeColor(img); 

ChangeColor torna Base64 immagine codificata:

return canvas.toDataURL(); 

Chrome e Opera sono immagini rinfrescante dopo il cambiamento src, ma firefox non lo fanno! Ho anche ispezionato l'elemento immagine di FireBug e mostra nuovo src e nuova immagine!

Ho già provato ad aggiungere Dati all'URL ma uhh ... questa è un'immagine codificata in Base64, non un URL, quindi rompe totalmente le mie immagini.

C'è un modo per forzare le immagini di ricaricare o disabilitare la cache di Firefox tramite javascript?

UPDATE: Ho anche provato a impostare image.src = ''; nella funzione changeColor. Funziona in chrome, ma in firefox ... l'immagine scompare e non appare più quando imposto un nuovo valore di base64.

+1

postale po 'di codice per favore. – Samson

+0

Non posso davvero aiutare senza vedere il codice rilevante per capire le opzioni. – jfriend00

+0

Se si tratta di un'immagine codificata in base64, non può essere un problema di cache, perché se l'immagine cambia i dati di base64 cambieranno. O mi sta sfuggendo qualcosa? Forse rimuovere e aggiungere nuovamente l'elemento dom image è qualcosa che potresti provare. (o impostare la src su "" e quindi sui dati effettivi, non so se questo aiuti, ma vale la pena provare) – Preli

risposta

0

Prova ad aggiungere il formato immagine (e usa jpg). Può ricodificare l'immagine:

return canvas.toDataURL('image/jpg'); 
+0

Funziona correttamente sulla maggior parte dei browser, ma in Firefox non . –

+1

Prova ad aggiungere un "?" (query string sign) alla fine del tuo src. Non so se sarebbe di aiuto in questo caso, ma ricordo che mi ha salvato una volta quando ho avuto un problema simile con FF. – dmmd

+0

Ho provato ... "?" rompe i dati dell'immagine. È perché i dati dell'immagine di src IS non sono un URL standard. –

1

Funziona per me come @dmmd menzionato. Devi solo aggiungere una stringa di query con un valore casuale.

id.src = "path?t=t"+ Math.random(5); 
+0

Questo ha funzionato per me –

1

non sto usando i dati delle immagini, ma questo ha lavorato per un problema simile in cui FF non stava ricaricando quando la variabile src non è cambiata:

image.src = ""; 
setTimeout(function(){ 
    image.src = //the new image src 
}, 0); 
Problemi correlati