2013-05-29 18 views
6

Używam implementacji javascript algorytmu gzip, który działa dobrze z przeglądarką Firefox i Chrome. Ale z Internet Explorer mam następujący błąd:JavaScript: Metoda nie jest obsługiwana z przeglądarki Internet Explorer

Method forEach is not supported!

Kod:

deflate.deflate(data, level).forEach(function (byte) { 
    putByte(byte, out); 
}); 

używam Internet Explorer 9, która powinna wspierać metody foreach.

Wszelkie pomysły?

Dziękuję bardzo!

+1

forEach nie jest obsługiwany w IE8. IE9 powinien jednak je wspierać. http://kangax.github.io/es5-compat-table/#Array.prototype.forEach –

+2

Czy twoja strona działa w trybie dziwactwa w IE? (Być może przez przypadek?) '.forEach()' jest obsługiwane tylko w trybie standardowym. Czy 'deflate.deflate()' zawsze zwraca tablicę? – nnnnnn

+0

Zamiast rozszerzania wbudowanego obiektu, możesz zamienić część 'forEach' na 2-wierszową pętlę' for'. – RobG

Odpowiedz

17

Możecie spróbować rozszerzyć przedmiot Array dla przeglądarek, które nie obsługują metody foreach na nim jak sugeruje tutaj Array.forEach

Jednym z przykładów jest:

if (!Array.prototype.forEach) { 
    Array.prototype.forEach = function(fn, scope) { 
     for(var i = 0, len = this.length; i < len; ++i) { 
      fn.call(scope, this[i], i, this); 
     } 
    } 
} 
+0

To działało dobrze! Dziękuję Ci bardzo! –

0

forEach nie jest obsługiwana w IE9, możesz spróbować użyć jquery.
ex:

+2

Chcę uniknąć użycia jquery. –

Powiązane problemy