Javascript compatible IE 7

Javascript compatible IE 7 - HTML/CSS - Programmation

Marsh Posté le 13-12-2007 à 16:58:58    

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 :o).
 
En fait, il s'agit d'un élément <select> (pour une combo).
 

Code :
  1. function maFonctionQuiPlante() {
  2.     // Calcul maxLength
  3.     var cb = document.getElementById("MaCombo" );
  4.     cb.recalculMaxLength = bRecalculMaxLength ? "1" : "0";
  5.     cb.maxLengthItem = this.getMaxLengthItem(cb);
  6.    
  7.     // Sauvegarde width initiale
  8.     cb.initWidth = cb.style.width ? cb.style.width : "100%";
  9.    
  10.     // Sauvegarde des anciens événements
  11.     cb.onchange_old = cb.onchange;
  12.     cb.onmousedown_old = cb.onmousedown;
  13.     cb.onfocusout_old = cb.onfocusout;
  14.    
  15.     // Modification des événements
  16.     cb.onchange = combo_onchange;
  17.     cb.onmousedown = combo_onmousedown;
  18.     cb.onfocusout = combo_onfocusout;
  19. }
  20. function combo_cancelEvent(elt) {
  21. var theEvent = elt.document.parentWindow.event;
  22. if (theEvent) {
  23.  theEvent.returnValue = false;
  24.  theEvent.cancelBubble = true;
  25. }
  26. }
  27. function combo_onchange() {
  28. // Appel le code définit sur l'évenement d'origine
  29. this.onchange_old();
  30. // Appel la modification de la taille
  31. Combo.changerWidth(this, false);
  32. // Annule l'événement
  33. combo_cancelEvent(this);
  34. }
  35. function combo_onmousedown() {
  36. // Appel le code définit sur l'évenement d'origine
  37. this.onmousedown_old();
  38. // Appel la modification de la taille
  39. Combo.changerWidth(this, true);
  40. // Annule l'événement
  41. combo_cancelEvent(this);
  42. }
  43. function combo_onfocusout() {
  44. // Appel le code définit sur l'évenement d'origine
  45. this.onfocusout_old();
  46. // Appel la modification de la taille
  47. Combo.changerWidth(this, false);
  48. // Annule l'événement
  49. combo_cancelEvent(this);
  50. }


 
 
Est-ce que quelqu'un a une idée sur le pourquoi ca plante sur ie7 et pas ie6 ? :jap:

Reply

Marsh Posté le 13-12-2007 à 16:58:58   

Reply

Marsh Posté le 13-12-2007 à 17:49:20    

Bah, chez moi, il me dit que bRecalculMaxLength n'existe pas.
 
Si je rajoute bRecalculMaxLength = 0 avant, il me dit que this.getMaxLengthItem n'existe pas, ce qui parait normal vu que tu ne donnes pas le contexte dans lequel doit être appelé cette fonction (surtout avec un "this" ).


Message édité par tpierron le 13-12-2007 à 17:51:17
Reply

Marsh Posté le 14-12-2007 à 12:10:51    

Ah oui mince, j'ai oublié d'enlever tout ca :/
 
Je vais refaire ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed