2016-09-08 3 views
-1

現在、私はhlsストリームを再生するために私のコードにhls.jsを使用しています。元のコードはECMAバージョン6で書かれ、その後ECMA 5に変換され、distフォルダ(リンクの上)に配置されます。それはどこかで完璧に動作します。IE8にECMA 5スクリプトを含む

ライブラリの機能を使用する予定はありません。私は単にそれを含めるだけです。 IE8でレンダリングすると、構文に関するエラーが発生します。

jsファイルをIE8と互換性のあるバージョンに変換することはできますか?単にファイルを含めない方法を見つけるべきでしょうか?

<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> 

しかし、それはまだIE8に次のエラー得られます:

Expected identifier hls.js, line 320 character 31

EDIT 2を私は次のことをやってみましたthis

EDIT

私は次のファイル.babelrcを使ってそれをファイルes3に置き換え、いくつかのエラーを修正しました。

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

しかし、今私はIE8で次のエラーに直面しています。

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

具体的なエラーはObject.definePropertyです。 IE 8はdefinePropertyメソッドをサポートしていないようです。これを修正する方法はありますか?」

+1

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

+0

https://www.typescriptlang.org/ –

+0

@ Xotic750私が使用してみましたhttps://github.com/es- shims/es5-shim、それでもIE8でエラーを出します。 (編集を確認してください) – user3288346

答えて

0

old IEのように、プロパティーに問題があり、defaultという名前が付けられていて、オブジェクトで使用されているときに予約語として扱われます。ですから、hlsでチケットを開いて、別の何かに変更したり、それを使用するように依頼する必要がある問題を修正するためにexp['default']

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

を引用しかし、彼らは状態を行います。

互換

hls.js 'ビデオ/ MP4' 入力してMSEをサポートしているブラウザと互換性があります。今日の時点で、それはでサポートされています。

34+クローム

Firefoxのデスクトップ42+のための

34+のFirefoxのAndroid 41+用デスクトップ

のためのAndroid

ため

クローム

IE11 + Windows 8の場合マック8+(ベータ版)

ための1

Safariのいずれかのtranspilerが古いIEのための問題ではありません何かにこれをtranspileことができるかどうかはわかりません。だけど、たぶん。

Babel 6.0.20 Modules feature not work in IE8

+0

または、むしろES5-to-ES3トランスピラーを使用してください。それらは存在します(例えば、[Babelの場合](https://www.npmjs.com/package/babel-preset-es3))。ライブラリを変更する必要はありません。 – Bergi

+0

Media Source Extensionsが必要なので、チケットを受け入れることは期待できません。私は蒸散器がこの古いIEの問題に対処すると思っていましたが、決して使用できないので、私は確信できませんでした。 :) – Xotic750

+0

誰もが古いIEを気にしないので、ES5の出力はデフォルトですが、ほとんどのトランスパイライザーはES3を作成する機能を持っています(それほど難しいことではありません)。 – Bergi

関連する問題