GetElementsByClassName non comptible IE7 ?

nico_73 Messages postés 180 Statut Membre -  
nico_73 Messages postés 180 Statut Membre -
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. Utilisateur anonyme
     
    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 ") {
                            ...
                     }
              }
    }
    


    0
  2. nico_73 Messages postés 180 Statut Membre
     
    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
    0