我正在使用Google地圖自動完成界面按用戶類型自動查找位置。它適用於我測試過的所有瀏覽器(Chrome,FireFox,iOS和更新的Android設備),Windows Phone除外。谷歌地圖地方自動完成不能在Windows Phone上使用?
在Windows手機上,places_changed事件似乎沒有被觸發,文本框也沒有像在其他瀏覽器上那樣自動更新。
這裏有一個簡單的場景,窗體上的一個文本框表明:
<div class="container" style="padding: 40px">
<label>Enter a location</label>
<input id="location" value="" class="form-control" />
</div>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&libraries=places">
</script>
<script>
var el = document.getElementById('location');
var autocomplete = new google.maps.places.Autocomplete(el);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
if (place.geometry.location)
// delay setting the value - otherwise maps uses default always
setTimeout(function() { el.value = place.name; }, 200);
});
</script>
你可以試試這個: http://embed.plnkr.co/kAwU0Fl97nEQr5HhxOTH/preview
它正常工作,在所有瀏覽器(包括IE 11按說使用與Windows Phone 8相同的渲染引擎),但在Windows Phone上會彈出下拉框,但文本框的自動更新都不會觸發,也不會顯示僅使用名稱更新文本的顯式事件代碼。
有什麼辦法可以解決這個問題嗎?
對於第一個'setTimeout'故意是否缺少超時參數? –
Duncan實際上應該有必要,但是添加(還有實際超時)來延遲在當前處理程序之後掛接事件處理程序的執行。即使更大的價值也無濟於事 - 沒有任何區別。去除它,因爲它確實沒有添加任何東西。 –
這不適用於我的Windows Phone模擬器,沒有任何建議出現在文本框中。可能是什麼原因? – Sumit