javascript - 谷歌地图、 "is null or not an object"和 IE8

标签 javascript google-maps google-maps-api-3 internet-explorer-8

所以,我正在创建的网站中有一个 Google map ,并且在每个浏览器中一切都运行良好,除了……IE8。在 IE8 中,当浏览器遇到第一个变量声明时,浏览器会停止读取 JS 文件,并给出我在主题中提到的错误。它不会加载 map ,也不会加载错误下方的任何函数。

它始终位于同一个变量中,这意味着如果我更改代码,它将始终卡在该部分中。

所以代码如下:

var monteiros_xs = new google.maps.LatLng(40.562884,-7.113948);
var MY_MAPTYPE_ID = 'custom_style';

function calculateCenter() {
  center = map.getCenter();
}
function initialize() {

  var featureOpts = [
  {
    stylers: [
    { hue: '#b0d57d' },
    { visibility: 'on' },
    { gamma: 0 },
    { weight: 1 }
    ]
  },
  {
    elementType: 'labels',
    stylers: [
      { visibility: 'on' }
    ]
  },
  {
    featureType: 'water',
    stylers: [
      { color: '#f1f2f2' }
    ]
  }
  ];

var mapOptions;


    mapOptions = {
        scrollwheel: false,
        zoom: 10,
        center: monteiros_xs,
        disableDefaultUI: true,
        mapTypeControlOptions: {
            mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID]
        },
        mapTypeId: MY_MAPTYPE_ID
    };


  map = new google.maps.Map(document.getElementById('map-canvas'),
  mapOptions);

  var styledMapOptions = {
  name: 'Granigri'
  };

    var rectangulo = new google.maps.Rectangle({
        strokeColor: '#3c3c3c',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: '#1a1a1a',
        fillOpacity: 0.35,
        map: map,
        bounds: new google.maps.LatLngBounds(new google.maps.LatLng(40.560884,-7.119948), new google.maps.LatLng(40.566884,-7.112948))
    });

    if(rectangulo !== "") {}

  var customMapType = new google.maps.StyledMapType(featureOpts, styledMapOptions);

  map.mapTypes.set(MY_MAPTYPE_ID, customMapType);

google.maps.event.addDomListener(map, 'idle', function() {
    calculateCenter();
});
google.maps.event.addDomListener(window, 'resize', function() {
    map.setCenter(center);
});
}

$(document).ready(function(){
  initialize();
});

错误始终出现在“google.maps”部分。我在某处读到它可能与尾随逗号有关,但 24 小时后我找不到任何内容。

有什么想法吗?

最佳答案

尝试像这样添加 map 中心

var mapOptions;
mapOptions = {
    scrollwheel: false,
    zoom: 10,
    center: new google.maps.LatLng(40.562884,-7.113948),
    disableDefaultUI: true,
    mapTypeControlOptions: {
        mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID]
    },
    mapTypeId: MY_MAPTYPE_ID
};

关于javascript - 谷歌地图、 "is null or not an object"和 IE8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19061494/

相关文章:

Javascript - 使用 fetch 查询 VoltDB api

php - Google map 新 URL 只是一个 htaccess mod 吗?

javascript - 如何将文本标签直接放置在 Google map 上

google-maps - 用于地理编码的 map API key 不起作用

javascript - 使用 Google map 进行地理编码,没有 OVER_QUERY_LIMIT 错误 - 尝试使用 PHP 解决方案

javascript - 使用 onclick 处理程序进行 jQuery 验证不起作用?

php - 纬度/经度正则表达式

javascript - 未捕获的语法错误 : Unexpected token < in &lt;! DOCTYPE html>

javascript - 谷歌地图 API 无法加载 map

javascript - 获取 Google map 上绘制的折线的所有点 -