google.maps.LatLng不是一个函数

时间:2015-08-16 17:26:04

标签: javascript jquery google-maps google-maps-api-3

所有。我正在使用谷歌地图构建一个网络应用程序。一切正常,直到我决定将自动完成功能添加到地址框。我最初的JavaScript包括:

一切都很好。一旦我添加了自动完成功能,我就看到我必须将JavaScript include更改为:

<script src="https://maps.googleapis.com/maps/api/js?signed_in=true&libraries=places&callback=initAutocomplete" async defer></script>

自动完成功能正常,但现在旧的地图代码已损坏。具体来说,我收到此错误:

  

TypeError:google.maps.LatLng不是函数

我到处都有以下代码:

var googlePosition = new google.maps.LatLng(lat, lng);

从我的测试中,我可以说它与JavaScript包含之后的部分有关。

signed_in=true&libraries=places&callback=initAutocomplete async defer

关于如何让这两个功能协同工作的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,摆脱 async defer 属性。

然后看看这个: https://developer.mozilla.org/en/docs/Web/HTML/Element/script

  

<强>异步   设置此布尔属性以指示浏览器   如果可能,应该异步执行脚本。它没有   对内联脚本(即没有src的脚本)的影响   属性)。

     

<强>延迟   此布尔属性设置为向浏览器指示脚本   意味着在解析文档后执行。从此   所有其他主流浏览器尚未实现此功能,   作者不应该假设脚本的执行实际上是   推迟。不应在没有的脚本上使用defer属性   有src属性。从Gecko 1.9.2开始,defer属性就是   在没有src属性的脚本上被忽略。但是,在   如果defer属性是,则延迟Gecko 1.9.1甚至内联脚本   集。