2014-04-30 4 views
3

새로운 각도 응용 프로그램으로 작업 중이며 IE8에 역 호환되도록해야합니다. 내 라우팅 정보에로드 된 것처럼 보이지만 서식 파일을로드 (지점)하지만 concole 로그에 다음 오류가 표시됩니다.IE8의 AngularJS 오류

TypeError: Object doesn't support this property or method <div class=ng-scope ng-view>

이 내 인덱스 HTML 페이지는 모습입니다 같은 :

<!DOCTYPE html> 
<html id="ng-app" ng-app="app"> 
    <head> 
     <!--Add dependencies--> 
     <script src="jquery.min.js"></script> 
     <link rel="stylesheet" src="bootstrap.min.css" /> 
     <script src="angular.min.js"></script> 
     <script src="angular-route.js"></script> 
     <script src="ui-bootstrap.js"></script> 
     <script type="text/javascript"> 
      document.createElement('header'); 
      document.createElement('nav'); 
      document.createElement('menu'); 
      document.createElement('section'); 
      document.createElement('article'); 
      document.createElement('aside'); 
      document.createElement('footer'); 
     </script> 
    </head> 
    <body> 
     <div id="wrapper"> 
      <header class="header header-fixed"> 
       <section class="navbar navbar-inverse docs-navbar-primary"> 
        <div class="container"> 
         <div class="row"> 
          <div class="col-md-7" style="color:white; margin-top:14px;">Thinflash: Fullscreen Demo</div> 
         </div> 
        </div> 
       </section> 
      </header> 
      <section role="main" class="container main-body"> 
       <div ng-view></div> 
      </section> 
      <!--Add AngularJs Files--> 
      <script src="swfObject.js"></script> 
      <script src="app.js"></script> 
      <script src="appControllers.js"></script> 
      <script src="thinflash.js"></script> 
     </div> 
    </body> 
</html> 

Template.html : 다시

<div ng-controller="thinflash.controllers.playback"> 
    <div ng-controller="app.controllers.fullscreen"> 
     <div class="mainWrapper" id="stageWrapper"> 
      <label>SWF Object Display </label> 
      <div class="swfWrapper" style="width:320px; height:240px;" id="swfStage"> 
       <div class="tf-container" tf-swf tf-interface="flashInterface" tf-src="thin.swf" tf-min-version="11.0.0"></div> 
      </div> 
     </div> 

     <div class="col-md-5"> 
      <form role="form"> 
       <!-- Video Playback Controls --> 
       <div class="row"> 
        <div class="form-group col-md-7"> 
         <label>Select Preloaded Video:</label> 
         <select class="form-control" ng-model="myVideo" ng-init="myVideo = videos[2]" ng-change="changeVideo(myVideo)" ng-options="v for v in videos"><option></option></select> 
        </div> 
       </div> 

       <div class="row"> 
        <div class="form-group col-md-7"> 
         <button type="button" class="btn btn-primary" ng-click="pausePlaybackToggle()">Pause</button> 
         <button type="button" class="btn btn-primary" ng-click="playVideo()">Play</button> 
        </div> 
       </div> 

       <div class="row"> 
        <div class="form-group col-md-7"> 
         <label>Volume Control:</label> 
         <input style="width:50%;" type="range" id="slider" min="1" max="100" step="1" ng-model="volume" ng-change="changeVolume()"> 
        </div> 
       </div> 

       <div class="row"> 
        <div class="form-group col-md-8"> 
         <label>Size Controls:</label><br/> 
         <button type="button" class="btn btn-primary" ng-click="changeVideoSize(1)">Small</button> 
         <button type="button" class="btn btn-primary" ng-click="changeVideoSize(2)">Medium</button> 
         <button type="button" class="btn btn-primary" ng-click="changeVideoSize(3)">Large</button> 
        </div> 
       </div> 
      </form> 
     </div> 
    </div> 
</div> 

나타나는 IE8에서 응용 프로그램을로드하는 템플릿로드 (또는 너무 시작됩니다 ...하지만이 오류가 발생합니다)

+0

HTML을 게시했지만이 오류는 js 오류입니다. 대신 게시 할 수 있습니까? 흔히 indexOf와 같이 지원되지 않는 배열 함수를 사용하고 있기 때문입니다. – Jorg

답변

6

과 같은 것을 사용하여 IE8에 html5 지원을 추가하십시오.또는이 작은 조각 :

<script type="text/javascript"> 
    document.createElement('header'); 
    document.createElement('nav'); 
    document.createElement('menu'); 
    document.createElement('section'); 
    document.createElement('article'); 
    document.createElement('aside'); 
    document.createElement('footer'); 
</script> 

편집

그것은 당신에게 아무것도 이야기하지 않는 원인, 짐승이 될 수 IE의 "이 메서드 나 속성을 지원하지 않는 객체의"고정. 객체 무엇을 말하는 아니에요, 재산,이 실제로 발생한 방법 모두의 최악의 그것은 당신에게얘기 아니에요 말하고 아니에요 무엇을 말하는 아닙니다. 패턴을 봐? 효과적으로 말하고있다. 뭔가 어딘가에 문제가 발생했습니다. 그림으로 이동하십시오. 이것은 모두가 왜 을 좋아하는지 이유 중 하나입니다. IE.

위의 스 니펫을 추가하면 문제가 해결되었지만 다른 문제가 발생하여 같은 오류 메시지가 나타납니다. html의 각 새로운 관여 한 조각을 배치해서 오류 메시지의이 빵 부스러기 모험을 고치는 것은 아주 오래 걸릴 수 있고 오히려 IE의 헬프 데스크와 토론되어야한다. 그들은 새로운 문제에 대한 새로운 진부한 상자으로 업그레이드하라는 자동 응답기를 가지고 있습니다. Stackoverflow를 통해이 문제를 해결하는 것은 어두운 곳에서 눈을 가리고 술에 취한 물총으로 하늘에서 위성을 쏘는 것과 같습니다. 당신이 고려할 수

몇 가지 다른 것들 :

    다른 스크립트 위에서 스 니펫을 이동
  • 가 다운 그레이드 버전의 AngularJS와 포함
  • 가 html5shiv와 스 니펫을 교체 포함한다. 버전 1.1.5는 IE7에서 작동하는 것으로 보입니다. 버전 1.3은 IE8을 전혀 지원하지 않습니다.
  • 가이드 라인 확인 Angular IE compatibility
  • 문제의 원인이되는 부분을보다 잘 구분하려면 주석 코드 (javascript/html)를 시작하십시오. 여러 문제가 발생하면 동일한 오류 메시지가 IE에 생성됩니다.
  • 새로운 문제에 대한 새로운 진부한 상자로 업그레이드하십시오.
+0

위의 스크립트를 색인 페이지의 헤드 섹션에 추가했습니다. ui-bootstrap 항목은 현재 작동하고있는 것처럼 보이지만 원래 나열된 것과 동일한 오류가 발생합니다. 아마도로드 될 때 템플릿에 문제가있을 수 있습니다. 나는 그것을 명확히하기 위해 원래 게시물에 추가 할 것이다. – Deslyxia

5

나는 두 번째 대답을하고 싶다. 다른 사람이 같은 종류의 일이 일어난다.나는 polyfill하려고 노력하고 그래서 IE8 모드에서 다른 오류 .... Voila ....을 얻을 수 있기를 바라고 실행중인 IE9에서 코드를 실행하려고했는데 ...

null 머리에 못을 박았 ... 그것은 JS에 있었고 document.addListener()를 수행했기 때문입니다. 다행히도 나는이 기능이 내 머리카락을 꺼내기에 충분하지 않다는 것을 결정할 수 있었다.

다른 모든 것들은 .... 다행히도 이것은 IE가 별다른 오류 메시지를 제공함에 따라 향후 누군가에게 도움이됩니다.