2016-09-08 61 views
-1

目前,我在我的代码中使用hls.js来播放hls流。原始代码以ECMA版本6编写,然后转译成ECMA 5并放置在dist文件夹中(位于链接上方)。它适用于其他地方。在IE8中包含ECMA 5脚本

我不打算使用库中的任何函数。我只是想包括它。在IE8上渲染它会导致语法错误。

是否有可能将js文件转换成与IE8兼容的版本,或者我应该简单地找到一种不包含文件的方法?

编辑

this我试着做以下几点:

<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

我使用以下.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-垫片/ es5-shim,它仍然给IE8上的错误。 (检查编辑) – user3288346

回答

0

它看起来像旧的IE浏览器有一个名为default的属性的问题,并将其当作一个保留字在对象上使用时。因此,要解决你需要开出罚单与hls并要求他们改变它的东西不同,或使用的问题,它援引exp['default']

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

但他们的状态。

兼容性

hls.js是与浏览器支持MSE与 '视频/ MP4' 输入兼容。截至今天,它支持:

Android版Chrome浏览

34+的Chrome桌面

34+ Android版Firefox 41+

火狐桌面42+

IE11 +对于Windows 8。1

Safari浏览器的Mac 8+(测试版)

我不知道任何transpiler可以transpile到的东西,不是老IE有问题这一点。但也许。

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

我不希望他们会接受票,因为他们需要媒体资源扩展。我认为一个译员会解决这个旧的IE问题,但是因为我从来没有使用过,所以我不能确定。 :) – Xotic750

+0

没有人关心旧的IE,所以ES5的输出是默认的,但大多数转换器拥有创建ES3的能力(这并不困难)。 – Bergi