Javascript &引用;initMap不是一个函数;JS控制台中出错(谷歌地图API)

Javascript &引用;initMap不是一个函数;JS控制台中出错(谷歌地图API),javascript,google-maps,asynchronous,Javascript,Google Maps,Asynchronous,我很感激现在有人多次询问它,但我找不到一种方法来解决它,并将带有initMap函数的脚本作为一个单独的文件加载 让我解释一下: 我正在调用谷歌地图API: <script src="https://maps.googleapis.com/maps/api/js?key=MYAPIKEY&callback=initMap" async defer></script> 错误仍会发生,映射将不会加载 编辑2-在您的评论和建议之后完成更多测试 当我使用JS-bin代

我很感激现在有人多次询问它,但我找不到一种方法来解决它,并将带有initMap函数的脚本作为一个单独的文件加载

让我解释一下:

我正在调用谷歌地图API:

<script src="https://maps.googleapis.com/maps/api/js?key=MYAPIKEY&callback=initMap" async
  defer></script>
错误仍会发生,映射将不会加载

编辑2-在您的评论和建议之后完成更多测试

当我使用JS-bin代码尝试全局作用域时,它也不起作用

因此,我手动将代码导出到一个单独的文件中,现在将其作为

 <script src="/js/Maps.js"></script>
虽然Maps.js(预捆绑)在最后没有任何导出。

好的,我想出来了

问题在于Web包没有为initMap提供全局范围

有两种解决方案:

  • 添加
    window.initMap=initMap到Maps.js的末尾,为其提供一个全局范围

  • 添加对象
    var initMapObj=require('./模块/Map');initMapObj.initMap()

更多内容请阅读:

好的,我想出来了

问题在于Web包没有为initMap提供全局范围

有两种解决方案:

  • 添加
    window.initMap=initMap到Maps.js的末尾,为其提供一个全局范围

  • 添加对象
    var initMapObj=require('./模块/Map');initMapObj.initMap()

更多内容请阅读:


我们可以看看main.js的一些代码吗?initMap()是否位于main.js的开头?将main.js移到上面加载Apidito的脚本的顶部,共享一些额外的代码,这些代码可以在全局范围内复制声明此变量的issuetry,请参见此示例以获取指导,我是否已添加与API相关的所有代码?如果没有,请提供…这看起来是一个简单的问题,但如果没有可用的示例,很难解决。请在Google API脚本之前移动脚本标记,其中包括main.jstag@r3dst0rm那没用。我们能看看main.js的代码吗?initMap()是否位于main.js的开头?将main.js移到上面加载Apidito的脚本的顶部,共享一些额外的代码,这些代码可以在全局范围内复制声明此变量的issuetry,请参见此示例以获取指导,我是否已添加与API相关的所有代码?如果没有,请提供…这看起来是一个简单的问题,但如果没有可用的示例,很难解决。请在Google API脚本之前移动脚本标记,其中包括main.jstag@r3dst0rm这没有帮助。
<script>
   function initMap() {
   //rest of the code
</script>
function initMap() {
    var uluru = { lat: 40.741895, lng: -73.989308 };
    var map = new google.maps.Map(document.getElementById('map'), _defineProperty({ center: { lat: 40.741895, lng: -73.989308 }, zoom: 14 }, 'center', uluru));
    var marker = new google.maps.Marker({
        position: uluru, map: map
    });
}
 <script src="/js/Maps.js"></script>
require('./base/main');
require('./modules/Maps');