Bonjour,
J'ai récupere un bout de code qui n'est pas compatible ie7, et on m'a demandé pourquoi. Ne pouvant pas le tester, je n'arrive pas à voir ce qui ne vas pas (mis à part la façon de code comme ça en créant plein d'attributs ).
En fait, il s'agit d'un élément <select> (pour une combo).
Code :
- function maFonctionQuiPlante() {
- // Calcul maxLength
- var cb = document.getElementById("MaCombo" );
- cb.recalculMaxLength = bRecalculMaxLength ? "1" : "0";
- cb.maxLengthItem = this.getMaxLengthItem(cb);
-
- // Sauvegarde width initiale
- cb.initWidth = cb.style.width ? cb.style.width : "100%";
-
- // Sauvegarde des anciens événements
- cb.onchange_old = cb.onchange;
- cb.onmousedown_old = cb.onmousedown;
- cb.onfocusout_old = cb.onfocusout;
-
- // Modification des événements
- cb.onchange = combo_onchange;
- cb.onmousedown = combo_onmousedown;
- cb.onfocusout = combo_onfocusout;
- }
- function combo_cancelEvent(elt) {
- var theEvent = elt.document.parentWindow.event;
- if (theEvent) {
- theEvent.returnValue = false;
- theEvent.cancelBubble = true;
- }
- }
- function combo_onchange() {
- // Appel le code définit sur l'évenement d'origine
- this.onchange_old();
- // Appel la modification de la taille
- Combo.changerWidth(this, false);
- // Annule l'événement
- combo_cancelEvent(this);
- }
- function combo_onmousedown() {
- // Appel le code définit sur l'évenement d'origine
- this.onmousedown_old();
- // Appel la modification de la taille
- Combo.changerWidth(this, true);
- // Annule l'événement
- combo_cancelEvent(this);
- }
- function combo_onfocusout() {
- // Appel le code définit sur l'évenement d'origine
- this.onfocusout_old();
- // Appel la modification de la taille
- Combo.changerWidth(this, false);
- // Annule l'événement
- combo_cancelEvent(this);
- }
|
Est-ce que quelqu'un a une idée sur le pourquoi ca plante sur ie7 et pas ie6 ?