未捕获的类型错误:无法读取 null 的属性“firstChild”(Google 地图无法加载)[重复]

Posted

技术标签:

【中文标题】未捕获的类型错误:无法读取 null 的属性“firstChild”(Google 地图无法加载)[重复]【英文标题】:Uncaught TypeError: Cannot read property 'firstChild' of null (Google maps failing to load) [duplicate] 【发布时间】:2017-08-12 13:31:33 【问题描述】:

我想知道是否有人可以将他们关于 Google Maps API 的知识借给我。我读过类似的问题,但仍然无法找到答案。正如标题所说,我的浏览器控制台中显示的错误是:

Uncaught TypeError: Cannot read property 'firstChild' of null

我了解这意味着传递值的方式存在问题;以下是我的相关代码 sn-ps,其中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>

【问题讨论】:

无法找到地图 ID 【参考方案1】:

我认为center: lat: 39.305, long: -76.617long 是不正确的。 您应该像这样定义 latlng:

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

未捕获的类型错误:无法读取 null 的属性“firstChild”

当地图容器不存在时通常会出现错误消息:

map = new google.maps.Map(document.getElementById('id_that_does_notexist'),

【讨论】:

我将long 更改为lng,但这似乎并没有改变任何东西。我正在直接根据本指南为我的初始地图编写 javascript:developers.google.com/maps/documentation/javascript/examples/… 你把class='map'弄错了,你需要改成这个:&lt;div id='map'&gt;maps error&lt;/div&gt; 这是我的问题map = new google.maps.Map(document.getElementById('id_that_does_notexist'), 嗯,这也不能解决我的问题。我有一个 id="map" 并且在 javascript 代码中“var map = new google.maps.Map(document.getElementById('map'),” - 但仍然存在此错误 请提供更多信息,按 F12 查看控制台日志并在此处复制该错误或完整的 html 和 javascript?

以上是关于未捕获的类型错误:无法读取 null 的属性“firstChild”(Google 地图无法加载)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误:无法读取 null 的属性“getContext”

为啥我会收到此错误:未捕获的类型错误:无法读取 null 的属性 'classList'

未捕获的类型错误:在输入单击时无法读取 null 的属性“样式”

如何修复未捕获的类型错误:无法读取 null 的属性“值”

未捕获的类型错误:无法读取 null 的属性“innerHTML”

未捕获的类型错误:无法在方法中读取 null 的属性“classList”