Ho un tag img nel mio webapp che utilizza il gestore onload per ridimensionare l'immagine:img onload non funziona bene in IE7
<img onLoad="SizeImage(this);" src="foo" >
Questo funziona bene in Firefox 3, ma non riesce in IE7 perché il l'oggetto immagine passato alla funzione SizeImage()
ha una larghezza e un'altezza pari a 0 per qualche motivo - forse IE chiama la funzione prima che finisca il caricamento ?. Nella ricerca di questo, ho scoperto che altre persone hanno avuto questo stesso problema con IE. Ho anche scoperto che questo non è valido HTML 4. Questo è il nostro DOCTYPE, quindi non so se è valido o meno:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
C'è una soluzione ragionevole per il ridimensionamento di un'immagine, come è caricato , preferibilmente uno che è conforme agli standard? L'immagine viene utilizzata per l'utente per caricare una foto di se stessi, che può essere quasi di qualsiasi dimensione, e vogliamo visualizzarla a un massimo di 150x150. Se la soluzione è di ridimensionare l'immagine lato server durante il caricamento, so che è la soluzione corretta, ma mi è vietato implementarla :(Deve essere fatta lato client, e deve essere eseguita in mostra.
. grazie
Edit: a causa della struttura della nostra applicazione, non è pratico (confinante con impossibile) per eseguire questo script in onload del documento posso solo ragionevolmente modificare il tag delle immagini e il codice vicino ad essa (per. istanza potrei aggiungere un <script>
proprio sotto di esso.) Inoltre, abbiamo già librerie Prototype ed EXT JS ... la gestione preferirebbe non doverne aggiungere un'altra (alcune risposte hanno suggerito jQuery) .Se questo può essere risolto usando questi framework, sarebbe fantastico.
Edit 2: Purtroppo, dobbiamo sostenere Firefox 3, IE 6 e IE 7. È auspicabile per supportare tutti i browser basati su WebKit come pure, ma come il nostro sito attualmente non li supporta, possiamo tollerare soluzioni che funzionano solo in Big 3.
Domanda: è SizeImage() semplicemente ridimensionando la l'immagine da 150x150? Ho soluzioni diverse, entrambe migliori di quelle sottostanti, ma dipende da cosa devi fare a SizeImage(). –
@Eric: no, dovrebbe mantenere le proporzioni dell'immagine. Inoltre, se l'immagine originale è inferiore a 150x150, non si dovrebbe eseguire alcun ridimensionamento (non voglio mai allungare e immagine). – rmeador