Javascript InvalidValueError:initAutocomplete不是Google Places和Autocomplete API的函数

Javascript InvalidValueError:initAutocomplete不是Google Places和Autocomplete API的函数,javascript,autocomplete,google-places-api,geocoding,google-places,Javascript,Autocomplete,Google Places Api,Geocoding,Google Places,希望你能帮我,因为我遇到了麻烦,我对使用谷歌的PlacesAPI也很陌生 我现在还不打算发布任何代码,因为当我将要描述的两个部分独立运行时,我的代码运行良好 除了使用谷歌提供的Javascript示例中的自动完成API之外,我还使用谷歌的Places 最初,我的文档底部有以下脚本: <script src="https://maps.googleapis.com/maps/api/js?&libraries=places&callback=initAutocomplete"

希望你能帮我,因为我遇到了麻烦,我对使用谷歌的PlacesAPI也很陌生

我现在还不打算发布任何代码,因为当我将要描述的两个部分独立运行时,我的代码运行良好

除了使用谷歌提供的Javascript示例中的自动完成API之外,我还使用谷歌的Places

最初,我的文档底部有以下脚本:

<script src="https://maps.googleapis.com/maps/api/js?&libraries=places&callback=initAutocomplete" async defer></script>
 <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
当这些脚本未合并时,我没有收到这些错误,但后来我意识到需要Places API的函数停止工作。如果我删除了autocompleteapi引用,那么Places函数就会工作

关于如何使这两个功能协同工作,如图所示合并它们并解决“非功能”问题,我有什么想法吗

任何建议将不胜感激,请让我知道,如果你真的需要看到代码

提前感谢,,
Steph

您应该只使用一次include脚本,例如:

//maps.googleapis.com/maps/api/js?key=__API-KEY__&libraries=places
请注意,在包含脚本时忽略了“callback”参数。 然后在窗口加载时加载initAutocomplete,如下所示:

google.maps.event.addDomListener(window, 'load', initAutocomplete);

也许你需要在头部包含gmaps脚本,或者如果你把js放在内联位置,你会得到“google未定义”错误。

刚刚尝试过这个,发现删除
asyc
属性可以解决这个问题。即使在使用GoogleAPI URL上的回调来查找位置


删除asyc属性是一个较小的修复。

是的,这很有效!如果您希望在外部JS文件中使用JavaScript,而不是像示例中那样在HTML/PHP页面中使用JavaScript,那么这很好。删除回调,在JS中添加dom侦听器。像做梦一样工作!但别忘了geologite()的焦点。。。您还需要将其移动到外部JS中……我在WordPress中使用它时遇到了相同的问题,但我注意到,只有当我的自动完成函数写在JQuery onload函数中时,才会发生这种情况,所以我将其移出。我还没有测试过vanilla js的onload函数,但它通常应该是相同的方法。这个解决方案对我来说很有效。在我的例子中,我也从mapsapi脚本标记中删除了
async
attr。
//maps.googleapis.com/maps/api/js?key=__API-KEY__&libraries=places
google.maps.event.addDomListener(window, 'load', initAutocomplete);