Я использую функцию автозаполнения Google Places.
Все отлично работает в любом браузере (IE, Chrome, Firefox, Safari Mac): я начинаю вводить название улицы, нажимаю на результат, список результатов закрывается и событие срабатывает.
Однако в Safari Mobile нажатие на результат закрывает список результатов, но событие никогда не срабатывает. Это на iPhone 4S, iOS 9, но у меня были подобные отчеты и от пользователей других моделей.
Мой код, который использует карту Google на той же странице, довольно стандартен:
<div id="map"></div>
<input type="text" name="location" id="location">
<script>
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
// ...
);
var autocomplete = new google.maps.places.Autocomplete(
document.getElementById('location'), {
types: ['address'],
componentRestrictions: {country: "re"}
}
);
console.log('before listener');
autocomplete.addListener('place_changed', function() {
console.log('place changed');
});
console.log('after listener');
}
</script>
<script src="//maps.google.com/maps/api/js?libraries=places&callback=initMap&language=fr-RE" async defer></script>
Я подключил iPhone к Mac, проверил веб-инспектор и не вижу ошибок. Я вижу в консоли зарегистрированные сообщения «до слушателя» и «после прослушивателя», поэтому слушатель, похоже, зарегистрирован. Но сообщение «место изменено» никогда не появляется при записи результата.
В чем может быть проблема?