2015-12-29 56 views
1

我加載了谷歌地圖APIGOOGLEMAPS監聽器加載罰款的Firefox,但不是在其他瀏覽器

<script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=oxD34DBEEF_KbuMvCv3koum4ntaRia8GdIUwE&callback=initMap"> 
</script> 

繪製地圖

<script type="text/javascript"> 
var map; 
    function initMap() { 
    map = new google.maps.Map(document.getElementById('map'), { 
     ... 
     }); 
    } 
</script> 

,然後我定義了一個監聽器註冊緯度/地圖上任何點擊的經度。

function getLatLon() { 
      listener1 = google.maps.event.addListener(map, 'click', function (event) {...}) 
} 
... 
getLatLon(); 

這適用於Firefox,但在Chromium和IE上運行正常我得到一個錯誤「google is not defined」。我嘗試重新放置加載api的腳本,但沒有成功。使其同步加載會導致地圖不被顯示。

感謝您的幫助。

回答

0

Google API只能在調用回調之前使用,因此您需要將getLatLon()方法放入initmap()中以避免「google未定義」錯誤。

它必須像下面的代碼

<script type="text/javascript"> 
var map; 
    function initMap() { 
     map = new google.maps.Map(document.getElementById('map'), { 
      .... 
     }); 

     getLatLon(); 
    } 
</script> 
+0

這爲我工作。你是老闆,我希望我能給你一點意見。 – mknull

相關問題