2014-04-30 4 views
3

Я работаю с новым угловым приложением и должен сделать его обратно совместимым с IE8. Из того, что похоже на загрузку в моей информации маршрутизации, загружает шаблон (в точку), но в журнале concole я вижу следующую ошибку.Ошибки AngularJS в IE8

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

Добавить html5 поддержку IE8, используя что-то вроде html5shiv или этот маленький фрагмент кода:

<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 похоже на спутники с неба с водяным пистолетом, в темноте, с завязанными глазами и пьяными.

Некоторые другие вещи, которые вы могли бы рассмотреть следующие вопросы:

  • Перемещение фрагмента кода выше любого другого скрипта включают в себя
  • Замените фрагмент с html5shiv
  • Понизить включаемые версии AngularJS. Версия 1.1.5, похоже, работает для IE7. Версия 1.3 не поддерживает IE8 вообще.
  • Проверьте направляющие линии Angular IE compatibility
  • Начать код комментария (javascript/html), чтобы лучше изолировать часть, вызывающую проблему. Имейте в виду, что несколько проблем генерируют ту же ошибку сообщение в IE.
  • Обновите свою новую дерьмовую коробку с другими вопросами.
+0

Я добавил этот скрипт в раздел «Голова» моей индексной страницы. Кажется, что сейчас работает ui-bootstrap, но я все равно получаю ту же самую ошибку, которую я изначально перечислял. Возможно, в моем шаблоне есть проблема при загрузке. Я добавлю его в исходное сообщение для уточнения. – Deslyxia

5

Я хотел взять второй и ответить на этот вопрос, если кто-то другой совершит подобное.Я попытался сделать polyFill, и это не работает, поэтому я попытался запустить код в IE9 во время работы в режиме IE8, надеясь получить другую ошибку .... Voila ....

null ударил ноготь по голове ... это было в JS, и это было потому, что я делал document.addListener(). К счастью, я смог решить, что функциональность, которая поддерживалась, не была достаточно важной, чтобы вытащить мои волосы, поэтому я удалил эту строку в своих js ...

Все остальное сработало .... Надеюсь, это может быть помогите кому-то в будущем, поскольку IE предоставляет сообщения о звездных ошибках

Смежные вопросы