IE 7 e i bug di IE 5
Stavo scrivendo una piccola web application in cui avevo la necessità di riempire un campo select con una lista di valori prelevati da un database e che dipendono dai valori che sono presenti in altri campi. Per rendere il tutto più semplice all'utente ho pensato di riempire la casella con una chiamata AJAX in modo da poter poi riempire la casella con la proprietà innerHTML, presente ormai in tutti i browser. Lavorando sotto Linux, durante lo sviluppo eseguo diverse prove usando Firefox, Opera o Konqueror.
Dopo aver terminato e testato la pagina con i tre browser, ho deciso di provarla anche con Internet Explorer 6.0 (installato tramite ies4linux e wine) e qui i primi problemi: dopo le operazioni che precedevano il riempimento (tutte che si concludevano perfettamente), la casella era completamente vuota, mancava anche la voce disattivata che avevo inserito staticamente nella casella.
Il primo pensiero è stato che magari c'era qualche problemino tra IE e wine: vado a cercare un computer con windows 2000 installato, apro IE 6, carico la pagina e... lo stesso errore!
Allora penso che magari la Microsoft si sia accorta di questo bug e lo ha corretto con IE 7 che è uscito da poco, ma invece... stesso errore anche con il nuovissimo IE 7!
Faccio un po di ricerche su internet e capito in questa pagina del supporto Microsoft in cui viene segnalato esattamente il mio problema: oh bene, almeno se ne sono accorti e magari lo correggono con la prossima patch... ma poi, ecco la vera sorpresa di tutto: l'occhio va a cadere sul riquadro con la data e leggo Ultima modifica : lunedì 12 maggio 2003... il bug è segnalato dalla Microsoft da oltre tre anni e risale ad IE 5.0 e da allora nessuno ha mai pensato di correggerlo?
Se volete fare una prova, potete utilizzare il codice seguente:
<html>
<body>
<script language="javascript">
function fillSelect() {
var s = document.getElementById("s");
s.innerHTML = "<option value=\"1\">Uno</option>";
s.innerHTML += "<option value=\"2\">Due</option>";
s.innerHTML += "<option value=\"3\">Tre</option>";
s.innerHTML += "<option value=\"4\">Quattro</option>";
}
</script>
<select id="s">
<option value="0" disabled="true">Da riempire</option>
</select>
<br/>
<a href="#" onclick="fillSelect();return false;">Riempi</a>
</body>
</html>
Cliccando sul link Riempi, in tutti i browser ad eccezione di tutte le versioni di IE, la casella select mostra quattro voci. IE, invece, mostra la casella vuota.
Urban
30 Gennaio 2007 alle 17:51
Aggiungi sui social-network con Post<li>

