1

IE 8 페이지에서 다음 오류가 발생합니다 (페이지가 다른 브라우저에서 제대로 실행 중입니다).개체가이 속성 또는 메서드를 지원하지 않습니다. EmberJs IE 8 문제

if (!Object.create && !Object.create(null).hasOwnProperty) { 
     throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg"); 
    } 

은 ES5 - 가짜와 polyfil하십시오 의미 대상 : :

Please polyfil with es5-sham: http://git.io/yBU2rg 
내가 언급 한 파일에 라인 70532을 확인

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3) 
Timestamp: Wed, 10 Sep 2014 06:48:45 UTC 

Message: Object doesn't support this property or method 
Line: 70532 
Char: 5 
Code: 0 

, 나는이 코드를 보았다

enter image description here

이 오류를 어떻게 해결할 수 있습니까? .

답변

4

Object.create은 IE8에서 지원되지 않으므로 프레임 워크에서 "폴리 필름 화"하라는 메시지가 표시됩니다. 즉, 기본적으로 지원되어야하는 무언가를 구현해야하지만 어떤 이유로이 특정 환경은 그것.

Object.create을 사용하려면 직접 구현해야합니다. Fortunatelly, 많은 일을 할 필요가 없습니다. URL (https://github.com/es-shims/es5-shim/blob/master/es5-sham.js)은 필요한 폴리올을 포함하는 파일을 가리 킵니다. 프레임 워크 스크립트가 수행하기 전에 해당 스크립트를 실행하십시오.

업데이트 :
이 줄은 내게 부서진 것처럼 보입니다. !Object.create && !Object.create(null).hasOwnProperty.
Object.create이 없으면 Object.create(null)처럼 호출하면 오류가 발생하지만 'undefined is not function'과 같아야합니다.

+0

빠른 답장을 보내 주셔서 감사합니다. polyfil js를 포함 한 후에도 동일한 줄에서 동일한 오류가 발생합니다 – SharpCoder

+0

기다림, 프레임 워크 소스 코드에서이 줄이 있습니까? '! Object.create &&! Object.create (null) .hasOwnProperty' 그것은 나에게 부러 졌기 때문에. 'Object.create'가 없으면'Object.create (null)'처럼 호출하면 오류가 발생하지만 'undefined is not function'과 같아야합니다. 문제의 원인이되는 줄이 확실합니까? –

+0

문제는 프레임 워크 코드에 있습니다. 오류가 발생하면 오류에는이 행을 가리키는 행이 없습니다. – SharpCoder

2

내 시나리오에서 작동하는 또 다른 polyfil을 찾았습니다. 나는이 대답을이 link에 발견했다.

이 코드를 추가하는 것은 나를 위해 트릭을 수행 할 것으로 보인다

if (!Object.create) { 
    Object.create = function(proto, props) { 
     if (typeof props !== "undefined") { 
      throw "The multiple-argument version of Object.create is not provided by this browser and cannot be shimmed."; 
     } 
     function ctor() { } 
     ctor.prototype = proto; 
     return new ctor(); 
    }; 
} 

연결하는 코드 형태를 추가하고있다. 내가 만든 변경 사항은 예외가 발생하는 코드에 다른 오류가 발생했기 때문에 주석 처리 된 것입니다.