Javascript &引用;initMap不是一个函数;JS控制台中出错(谷歌地图API)
我很感激现在有人多次询问它,但我找不到一种方法来解决它,并将带有initMap函数的脚本作为一个单独的文件加载 让我解释一下: 我正在调用谷歌地图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代
<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()代码>
- 添加
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');