Bug du <select> d'IE
Par Keul le jeudi, 18 novembre 2010, 18:48 - Lien permanent
Un des bugs d'IE qui n'a pas été corrigé dans sa version 8 est le fait de ne pouvoir changer dynamiquement le contenu d'un select avec .innerHTML.
Microsoft propose des solutions de contournement : utiliser .innerHTML sur l'élément parent ou de passer par du DOM.
Très peu pratique quand on a déjà codé un select_element.innerHTML="nouvelles_options";
Heureusement, une solution rapide et efficace : remplacez select_element.innerHTML="nouvelles_options" par selectupdate(select_element,"nouvelles_options") et ajoutez la fonction de la page d'exemple suivante dans votre code :
<script>
function selectupdate(destination,contenu) {
if(navigator.userAgent.indexOf("MSIE") != -1) {
var emptyselect = destination.outerHTML.split(destination.innerHTML);
var result=emptyselect[0]+contenu+emptyselect[1];
destination.outerHTML=result;
} else {
destination.innerHTML=out;
}
}
</script>
Exemple : <select id="test">
<option>test1</option>
</select>
<input type="button" onclick="selectupdate(document.getElementById('test'), '<option>test2</option>')" value="OK">
Derniers commentaires