GetElementsByClassName non comptible IE7 ?

Bonjour,

Voila, j'ai cru comprendre que getElementsByClassName() en javascript, n'était pas compatible IE7. Dites moi si je me trompe ;).

j'ai donc créé une fonction qui pourrait pallier à ce problème, la voici :

function getElementsByClassName(el) {
	var ret = null;
	
	if(!(ret = doc.getElementsByClassName)) {
		doc.getElementsByClassName = function(el) {
			var allEl = doc.getElementsByTagName('*');
			var i = 0
			while(elm = allEl[i++]) {
				if(elm.className == el) {
					ret = elm.className;
				}
			}
		}
	}
	
	return ret;
}


Mais je n'ai pas pas l'occasion de la tester sur IE7 car j'ai fait les dernière mise à jour. Est ce que quelqu'un pourrait me dire si elle fonctionne ?

Je vous remercie d'avance.
Bien cordialement.
Configuration: Windows Vista
Firefox 3.5.3

2 réponses

  1. En effet, mon code à l'air de ressembler à celui là ;) sauf que je l'appel un peut différemment :

    if(!document.getElementsByClassName(el)) {
    	elm = document.getElementsByClassName == maClass.getElementsByClassName(el);
    }
    


    Merci pour ton bout de code. Par contre si quelqu'un pouvait me confirmer que ça fonctionne bien.

    Merci
    1. Aucune idée, je n'ai pas IE7 mais ce qui est certain, c'est que tu n'es pas le premier à qui ça arrive...

      http://www.javascriptfr.com

      Et la solution est là :

      var q = document.getElementById("pick_content").contentWindow.document;
      if (document.getElementsByClassName){
              q = q.getElementsByClassName('theclass');
               ...
      }
       else{ // IE
                var i = 0;
                var div = q.getElementsByTagName("div");
                while (element = div[i++]) {
                       if (element.className == " theclass ") {
                              ...
                       }
                }
      }