2016-11-17 130 views
0

我遇到了众所周知的问题initMap is not a function,我真的不知道如何解决它。我尝试了其他问题中推荐的各种方法,但没有一个可以工作。我发现的唯一合理解决方案涉及使用AngularJS,但我试图在没有它的情况下完成脚本。initMap不是一个函数 - 映射不是渲染。谷歌地图API - JS

这里是我的html代码:

<html> 
<head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>  
     <script async defer 
      src="https://maps.googleapis.com/maps/api/js?key=XXXXXX&callback=initMap"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
    <script src ="script.js" /> 

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
    <link rel="stylesheet" href ="style.css"> 
</head> 
    <body> 
    <div id ="map-canvas"> </div> 
    </body> 
</html> 

JS代码:

window.initMap = function() { 
     var uluru = {lat: -25.363, lng: 131.044}; 
     var map = new google.maps.Map(document.getElementById('map-canvas'), { 
      zoom: 4, 
      center: uluru 
     }); 
     var marker = new google.maps.Marker({ 
      position: uluru, 
      map: map 
     }); 
     }; 

对于JS代码,我简直复制并粘贴什么是谷歌与这里window.initMap = function()做了小改动文档。


事情我已经尝试:

  1. 更改function initMap()window.initMap = function()
  2. 删除一切initMap(),并给予它alert("ok")看到 是否会出现。那么,它没有。
  3. async defer的位置更改为脚本引用的末尾,同时将脚本引用放在最上面。

问题我已经检查详细:

First trySecondThird time wasn't the charm

错误消息我得到:

Error-msg-Chrome

我的地图不被渲染和我不断收到这个错误,任何想法如何解决它?

回答

1

两个问题前的定义:

  1. 添加缺少的</script>标签
  2. 更改页面加载顺序:
<div id="map-canvas"> </div> 
<script src="script.js" defer async></script> 
<script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=XXXXXX&callback=initMap"></script> 
+0

你能告诉我为什么它不读取'

0

尝试从这个

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>  
     <script async defer 
     src="https://maps.googleapis.com/maps/api/js?key=XXXXXX&callback=initMap"></script> 
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
     <script src ="script.js" /> 

改变脚本的顺序要这个

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>  

     <script src ="script.js" /> 
     <script async defer 
     src="https://maps.googleapis.com/maps/api/js?key=XXXXXX&callback=initMap"></script> 
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 

所以这样的initMap功能的GMaps API负载

+0

是去除错误,感谢,但我的地图仍然没有被呈现的某些原因。 – ZombieChowder