2016-09-08 2 views
-1

Derzeit verwende ich hls.js in meinem Code, um hls Streams zu spielen. Der ursprüngliche Code wird in der ECMA-Version 6 geschrieben und dann in ECMA 5 und in den Ordner dist übertragen (siehe Link). Es funktioniert perfekt woanders.Einschließlich ECMA 5 Skript in IE8

Ich plane keine zu verwenden, wenn die Funktionen aus der Bibliothek. Ich möchte es einfach aufnehmen. Rendering auf IE8 gibt Fehler in der Syntax.

Ist es möglich, die js-Datei in eine mit IE8 kompatible Version zu übertragen oder sollte ich einfach einen Weg finden, die Datei überhaupt nicht einzuschließen?

EDIT

this Im Anschluss an habe ich versucht, Sie folgendermaßen vorgehen:

<html> 
<h1> IE test new </h1> 

<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-shim.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-sham.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-shim.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-sham.min.js"></script> 
<script src="https://wzrd.in/standalone/[email protected]"></script> 

<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.js"></script> 

</html> 

Allerdings gibt es nach wie vor den folgenden Fehler auf IE8:

Expected identifier hls.js, line 320 character 31

EDIT 2

Ich benutzte die folgende .babelrc Datei, um es in es3 Datei zu transpieren und einige andere Fehler zu beheben.

{ 
    "presets": ["es3"], 
    "plugins": ["transform-es3-property-literals", "transform-es3-member-expression-literals"] 
} 

Doch jetzt stehe ich folgende Fehlermeldung auf IE8.

Object doesn't support this property or method hls.js, line 1063 character 17 

Der genaue Fehler ist auf der Linie Object.defineProperty. Es scheint, IE 8 unterstützt die defineProperty Methode nicht. Gibt es eine Möglichkeit, das zu beheben?

+1

https://github.com/es-shims/es5-shim – Xotic750

+0

https://www.typescriptlang.org/ –

+0

@ Xotic750 ich versucht, mit https://github.com/es- shims/es5-shim, es gibt immer noch Fehler auf IE8. (Überprüfen Sie die Bearbeitung) – user3288346

Antwort

0

Es sieht aus wie alte IE hat ein Problem mit der Eigenschaft mit dem Namen default und behandelt es als ein reserviertes Wort bei der Verwendung für ein Objekt. Also das Problem zu beheben müssen Sie mit hls ein Ticket zu öffnen und sie bitten, es zu etwas zu ändern, um verschiedenen oder es verwenden, zitiert exp['default']

http://jonathonhill.net/2009-11-24/javascript-reserved-words-trigger-expected-identifier-error-on-ie/

Aber sie tun Zustand.

Compatibility

hls.js ist mit Browsern kompatibel MSE Unterstützung mit 'Video/MP4' Eingänge. Ab heute wird es unterstützt auf:

Chrome für Android

34+ Chrome für Desktop-

34+ Firefox für Android 41+

Firefox für Desktop-42+

IE11 + für Windows 8.1

Safari für Mac 8+ (beta)

Ich weiß nicht, ob irgendein Transpiler dies in etwas transpile kann das kein Problem für alte IE ist. Aber vielleicht.

Babel 6.0.20 Modules feature not work in IE8

+0

Oder lieber einen ES5-zu-ES3-Transpiler verwenden. Sie existieren (z.B. [für Babel] (https://www.npmjs.com/package/babel-preset-es3)). Keine Notwendigkeit, die Bibliothek zu ändern. – Bergi

+0

Ich würde nicht erwarten, dass sie das Ticket trotzdem akzeptieren würden, da sie Media Source Extensions erfordern. Ich dachte, dass ein transpiler dieses alte IE-Problem zwar ansprechen würde, aber da ich nie eines benutze, konnte ich mir nicht sicher sein. :) – Xotic750

+0

Niemand kümmert sich um alte IE, so ES5-Ausgabe ist die Standardeinstellung, aber die meisten transpilers besitzen die Fähigkeit, ES3 zu erstellen (es ist nicht so schwer). – Bergi