2009-09-02 7 views
1

Ich kann nicht herausfinden, ich bekomme den folgenden Fehler in IE 8 (nur IE-Version, die ich bisher getestet habe). Das Skript läuft in allen anderen Browsern (Chrome, ff, Safari), die ich getestet habe. Was mache ich falsch?IE Skript Fehler mit meinem jQuery Plugin

Fehler:

Nachricht: Objekt nicht diese Eigenschaft oder Methode Linie unterstützt: 52 Char: 29 Code: 0 URI: http://www.ntierdesign.com/jquery/livetwitter/Scripts/jquery.liveTwitter.js

Nachricht: Objekt unterstützt diese Eigenschaft oder Methode Line: 1 Char: 1 Code: 0 URI: http://twitter.com/status/user_timeline/bloomsdayreg.json?count=3&callback=jsonp1251868075768&_=1251868075882

Beispiel:

Hoffentlich werde ich Kappe aus nicht meine twitter api Ratenbegrenzung zu schnell, aber Sie können ein Beispiel für die Seite hier http://ntierdesign.com/jquery/livetwitter/

Antwort

2

Sie haben diesen Fehler, da die Version von anzuzeigen IE, das Sie verwenden, implementiert nicht Array/indexOf, die in JavaScript 1.6 eingeführt wurde.

Sie können jedoch die indexOf-Methode zum Array-Prototyp hinzufügen, wenn sie nicht existiert, aus Gründen der Kompatibilität.

Dies ist die Implementierung, dass Firefox intern verwendet:

if (!Array.prototype.indexOf) { 
    Array.prototype.indexOf = function(elt /*, from*/) { 
    var len = this.length >>> 0; 

    var from = Number(arguments[1]) || 0; 
    from = (from < 0) 
     ? Math.ceil(from) 
     : Math.floor(from); 
    if (from < 0) 
     from += len; 

    for (; from < len; from++) { 
     if (from in this && 
      this[from] === elt) 
     return from; 
    } 
    return -1; 
    }; 
} 

prüfen mit IE this example Ihrer Seite, fügte der Kompatibilität Funktion, läuft ohne Probleme ...

+0

Dank CMS, ich habe nicht viel Javascript-Entwickler getan, aber ich bin wirklich überrascht, dass ich noch nie in das ausgeführt haben. – NATO24

+0

Willkommen bei @ntierdesign ... willkommen in der seltsamen Welt des Cross-Browser Scripting ... :-) – CMS

0

die Fehlerpunkte direkt auf Linie 52, char 29, das ist die Methode .indexOf für Array.

Diese Methode ist nicht auf IE Javascript implementiert - daher der Fehler.

Zum Glück gibt es Tonnen von Workarounds im Internet, z. link text

+0

Danke Ken, das war's. – NATO24