未捕获的TypeError:无法读取null的属性'firstChild'(Google地图无法加载)[重复]

问题描述 投票:16回答:1

我想知道是否有人能够将他们的知识借给Google Maps API。我已经阅读了类似的问题,仍然无法得出答案。正如标题所示,我的浏览器控制台中显示的错误是:

Uncaught TypeError: Cannot read property 'firstChild' of null

我知道这意味着价值传递方式存在问题;以下是sources在Chrome中指向的相关代码段:

// --- Global Variable
var map;


// --- View Model.
function AppViewModel() {

  // Initial Map
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 39.305, long: -76.617},
    zoom: 12
  });


// --- Initalize Application.
function initApp() {
  ko.applybindings(new AppViewModel());
}

当Google地图尝试加载时,似乎会抛出该错误。有没有人知道我在这里做错了什么?感谢您提供的任何帮助。

Html供参考:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Bolton Hill Neighborhood Map</title>
  <link rel="stylesheet" href="static/main.css">
  <meta name="viewport" content"width=device-width, initial-scale=1">
</head>
<body>
 <div class='map'>maps error</div>

  <script src="./js/knockout.js"></script>
  <script src="./js/jquery.min.js"></script>
  <script src="./js/app.js"></script>
  <script async defer src="https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&callback=initApp" onerror="errorHandler"></script>
</body>
</html>
javascript jquery google-maps
1个回答
46
投票

我认为center: {lat: 39.305, long: -76.617},与long不对。 您应该像这样定义latlng:

var latlng = new google.maps.LatLng(39.305, -76.617);
map = new google.maps.Map(document.getElementById('map'), {
  center: latlng,
  zoom: 12
});

未捕获的TypeError:无法读取null的属性“firstChild”

map = new google.maps.Map(document.getElementById('id_that_does_notexist'), {时通常会出现错误消息

© www.soinside.com 2019 - 2024. All rights reserved.