目前,我在我的代码中使用hls.js来播放hls流。原始代码用ECMA版本6编写,然后转换为ECMA 5并放在dist文件夹中(上面的链接)。它在其他地方完美运作。
我不打算使用任何来自库中的函数。我只想包括它。在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/es7-shim@latest"></script>
<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.js"></script>
</html>
但是,它仍会在IE8上出现以下错误:
Expected identifier hls.js, line 320 character 31
编辑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
方法。有没有办法解决这个问题。?
答案 0 :(得分:0)
看起来旧IE在名称为default
的属性中存在问题,并在对象上使用时将其视为保留字。因此,要解决此问题,您需要使用hls
打开故障单并要求他们将其更改为不同的内容或使用引用exp['default']
但他们确实说了。
兼容性
hls.js与支持MSE的浏览器兼容&#39;视频/ MP4&#39; 投入。截至今天,它得到了支持:
Chrome for Android
34+ Chrome for Desktop
34+ Firefox for Android 41 +
Firefox for Desktop 42 +
IE11 + for Windows 8.1
Safari for Mac 8+(测试版)
我不知道是否有任何转换器可以将其转换为对旧IE而言不是问题的东西。但也许。