2009-08-15 14 views
5

Also erstmal ich lerne JS und werde nicht eine Bibliothek verwenden, bis ich alles weiß, was ich brauche.Javascript IE und getElementsByClassName Probleme

http://www.tombarrasso.com/search/

Mit diesem wird gesagt, warum auf der Erde ist mein Code nicht 7 in < IE arbeiten, Firefox < 3, etc? Safari 4 ist perfekt, Firefox 3.5 ist großartig, etc. Ich verwende die Funktion getElementsByClassName von Robert Nyman.

Es erzeugt keine Fehler in meinem IE 6 unter OS X (über Wine). Die Ajax-Anfrage ist in Ordnung, aber es sollte ein anfängliches div mit ID = "Eins" und Klasse = "Scroller" geben, aber das ist nicht. Ich bin gerade so frustriert.

Danke,

  • Tom
+0

könnten Sie schreiben die Code? nicht sicher, wo es zu finden ist: D –

+0

http://www.tombarrasso.com/search/x.js – Tom

+1

stellt sich heraus .setAttribute ("Klasse", "Scroller") ist nicht gut für einige IEs, also muss ich auch zu .setAttribute ("className", "scroller"). Zusätzlich musste ich alle .appendChild() in einer Zeile hinzufügen, da IE es nicht von einer zur nächsten hält. Aber IE 8 beachtet diese nicht, wie IE 6 und 7 tun. – Tom

Antwort

4

Persönlich würde ich jQuery nur, wie es bereits die Browser-Kompatibilität Probleme hat man in laufen.

Es ist alles in Ordnung, alles zu lernen; aber wenn es um die Kompatibilität der Implementierung geht, ist es besser, sie für sich zu erledigen, IMHO. Es gibt nur einige Dinge, die mir egal sind: P

2

IE8 gibt Fehler - "Objekt unterstützt keine Eigenschaft oder Methode", wenn wir getElementsByClassName in Javascript verwenden. Versuchen Sie es stattdessen.

0

Ich habe jQuery verwendet, um mein Problem bei der Unterstützung dieser Clients mit ie7 zu beheben.

Alt:

var editrow = grid.get_element().getElementsByClassName("rgEditRow")[0]; 

Neu:

var editrow = $(".rgEditRow", grid.get_element())[0]; 
8

.or Sie dies als eine bessere Lösung verwenden können ...

if (typeof document.getElementsByClassName!='function') { 
    document.getElementsByClassName = function() { 
     var elms = document.getElementsByTagName('*'); 
     var ei = new Array(); 
     for (i=0;i<elms.length;i++) { 
      if (elms[i].getAttribute('class')) { 
       ecl = elms[i].getAttribute('class').split(' '); 
       for (j=0;j<ecl.length;j++) { 
        if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) { 
         ei.push(elms[i]); 
        } 
       } 
      } else if (elms[i].className) { 
       ecl = elms[i].className.split(' '); 
       for (j=0;j<ecl.length;j++) { 
        if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) { 
         ei.push(elms[i]); 
        } 
       } 
      } 
     } 
     return ei; 
    } 
} 
Verwandte Themen