我在 JQuery 中异步加载谷歌地图和地点:
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "http://maps.google.com/maps/api/js?key=myKey&libraries=places&sensor=false&async=2&callback=MapApiLoaded";
document.body.appendChild(script);
谷歌地图加载后调用回调:
function MapApiLoaded() {
var input = document.getElementById('searchField');
var options = {
types: ['(cities)'],
};
autocomplete = new google.maps.places.Autocomplete(input, options);
google.maps.event.addListener(autocomplete, 'place_changed', function(event) {
var item = autocomplete.getPlace();
// do some stuff
}
GMapsloaded = true;
}
当我进入我的城市选择屏幕时,我首先检查谷歌地图是否已加载:
if(!GMapsloaded) {
alert('mapsnotloaded');
return;
}
当我的手机处于 Wifi 或 3G 网络时,我可以开始输入占位符,然后 google 地方就会响应。当我在 Edge 中时,我开始打字并且没有来自谷歌地方的交互。当我输入第一个字母时,可能需要 2 分钟才能真正得到任何反应。
我希望只有在 Places 真正准备好时才能真正开始输入输入文本。但我还没有找到任何要绑定的事件。
任何想法 ?谢谢