Ошибки JavaScript в IE 8

Меня немного смущают некоторые ошибки, возникающие в Internet Explorer 8, но не в Firefox.

Я вижу следующие ошибки:

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windwos NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Timestamp: Wed, 13 Jun 2012 08:33:22 UTC

Message: Object expected
Line: 3
Char: 1
Code: 0
URI: http://<ipAddress>/.../locations.js

Message: Syntax error
Line: 34
Char: 11
Code: 0
URI: http://<ipAddress>/.../testMap1.html

Я использую следующие файлы...

testMap1.html:

    <div id="map_canvas" style="width: 1200px; height: 700px;">map div foo</div>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript" src="/static/app/foo/locations.js"></script>
    <!--<script type="text/javascript" src="/static/app/foo/script.js"></script>-->
    <script type="text/javascript">

  var centerPoint = new google.maps.LatLng(9.449062,7.950439);

  var parliament = new google.maps.LatLng(9.449062,7.950439);
  var parliament1 = new google.maps.LatLng(34.449062,7.950439);
  var marker;
  var map;
  var i;

  function initialize() {
      var mapOptions = {
        zoom: 2,
        mapTypeId: google.maps.MapTypeId.HYBRID,
        center: centerPoint
      };

      map = new google.maps.Map(document.getElementById("map_canvas"),
              mapOptions);


      for (i = 0; i < locations.length; i++) {
          marker = new google.maps.Marker({
            map:map,
            draggable: false,
            animation: google.maps.Animation.DROP,
            position: new google.maps.LatLng(locations[i][0], locations[i][1]),
          });
          google.maps.event.addListener(marker, 'click', toggleBounce);
      }
  }

// for toggleBounce, need to add ", toggleBounce" back into previous brackets.

  function toggleBounce() {

      if (marker.getAnimation() != null) {
        marker.setAnimation(null);
      } else {
      marker.setAnimation(google.maps.Animation.BOUNCE);
      }

  }
    </script>

locations.js:

  var locations = [
     [9.449062, 7.950439, 0],
     [34.449062, 10.950439, 50]
  ];

Есть мысли, почему это не сработает? какие-либо ослепительные ошибки?

С Уважением,

Matt

2 ответа

Решение

Удалите запятую из этой строки:

position: new google.maps.LatLng(locations[i][0], locations[i][1]),

Это вызывает проблемы в IE.

marker = new google.maps.Marker({
   map:map,
   draggable: false,
   animation: google.maps.Animation.DROP,
   position: new google.maps.LatLng(locations[i][0], locations[i][1]) //removed comma
});

ioseb уже опубликовал идеальный ответ. Однако, чтобы предотвратить такие ошибки в будущем, я рекомендую использовать компилятор Google Closure, который предупредит вас, если такие ошибки произойдут. Вот вы: http://code.google.com/p/closure-compiler/downloads/list

Другие вопросы по тегам