2013-07-04 159 views
3

我覺得這是一個相當簡單的代碼,並且在iframe中運行的代碼被視爲Google Map文檔中的示例代碼,所以它與iframe,但我不確定。谷歌地圖錯誤「'addDomListener'undefined」

簡而言之,我創建了一個iframe,將Google Maps JS API放入其中,然後將一個函數加載到其中,該函數具有來自其文檔的地圖示例。我得到

Uncaught TypeError: Cannot call method 'addDomListener' of undefined

這裏的JSBin鏈接:http://jsbin.com/ucovaj/1

回答

4

看看到控制檯會告訴你是這樣的:

調用document.write()的從異步加載外部腳本被忽略

您不能加載default-maps-script是異步的,因爲它使用了document.write()文檔加載完成後無法使用的內容。

您必須通過添加回調參數的URL加載在這種情況下,一個特殊的版本(見https://developers.google.com/maps/documentation/javascript/tutorial#Loading_the_Maps_API瞭解詳細信息)

+0

不知道你是什麼意思?我上面粘貼的錯誤來自控制檯。我還會怎樣看到一個JS錯誤? :P –

+0

我會看看你的解決方案,謝謝!我對你如何得到這個錯誤感興趣。它不會像在Chrome或Firefox中那樣顯示。 –

+0

仍然搞亂它,並且地圖不是很顯示,但使用回調參數修復了所有的錯誤。謝謝! –

1

我只有一個簡單的介紹一下,但是還有就是你正在重新定義地圖這裏的錯誤:

var Map = function (opts) { 

這是否需要稱爲地圖?也許是我的地圖。

0

我來到了一個類似的錯誤,而與谷歌地圖的JavaScript API V3玩耍,它的Hello World樣,因爲它是在教程頁面說我說像這樣的API:

<script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?key={API_KEY}&sensor=SET_TO_TRUE_OR_FALSE"> 
</script> 

但它給我的消息在這篇文章的標題,經過一番調查,我發現,工作樣本中有另一種參數傳遞到api的url的查詢字符串部分,這是v的版本上,沒有提到它是必需的,但增加v=3.exp使它工作。

<script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=xxxxxxxxx&sensor=false"> 
</script> 

我希望它可以節省一些人的寶貴時間。

0

功能之前生成的事件,它不承認, 您更改此代碼:

$(document).ready(function() {  
google.maps.event.addDomListener(window, 'load', initialize); 
}); 

此代碼:

$(window).load(function(){ 
google.maps.event.addDomListener(window, 'load', initialize); 
});