2016-09-08 5 views
-1

현재, hls 스트림을 재생하려면 내 코드에 hls.js을 사용하고 있습니다. 원래 코드는 ECMA 버전 6으로 작성된 후 ECMA 5로 옮겨지고 dist 폴더 (위 링크)에 저장됩니다. 그것은 다른 곳에서도 완벽하게 작동합니다.IE8에 ECMA 5 스크립트 포함

라이브러리의 기능을 사용하지 않으려합니다. 나는 단지 그것을 포함시키고 자한다. IE8에서 렌더링하면 구문에 대한 오류가 발생합니다.

js 파일을 IE8과 호환되는 버전으로 변환 할 수 있습니까? 아니면 단순히 파일을 포함하지 않는 방법을 찾아야합니까?

편집

this에 따라 나는 다음과 같은 일을 시도 :

Expected identifier hls.js, line 320 character 31

편집 2 그러나

<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에 다음과 같은 오류를 제공합니다

다음 .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

예전 Internet Explorer는 속성이 default 인 문제가 있으며 개체에 사용될 때 예약어로 취급됩니다. 그래서 당신은 hls와 함께 티켓을 열고 다른 무언가로 변경을 요청하거나 사용해야합니다 문제를 해결하기 위해이 exp['default']

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

을 인용 그러나 그들은 상태를 않습니다.

호환성

hls.js은 '비디오/MP4' 입력을 MSE를 지원하는 브라우저와 호환됩니다. 오늘로서, 그것은에서 지원됩니다

34+ 크롬

파이어 폭스 데스크톱 42+에 대한

34+ 파이어 폭스 안드로이드 41+ 데스크탑

안드로이드

에 대한

크롬

IE11 + Windows 8 용.1

맥 8 + (베타)

어떤 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 Extension이 필요하기 때문에 어쨌든 티켓을 수락 할 것이라고는 기대하지 않습니다. 나는 transpiler가이 오래된 IE 문제를 해결할 것이라고 생각했지만 결코 사용하지 않았기 때문에 나는 확신 할 수 없었다. :) – Xotic750

+0

아무도 오래된 IE를 신경 쓰지 않으므로 ES5 출력이 기본값이지만 대부분의 transpryer는 ES3을 생성하는 기능을 갖추고 있습니다 (어렵지 않습니다). – Bergi