2013-03-27 87 views
2

我試圖讓Google Maps API v3在我的網站上運行,但我遇到了兩個問題。Google地圖加載異步問題

  1. 我使用yepnope異步加載該API的腳本,我得到的錯誤在我的控制檯「由X框選項否認負荷」。它說http://maps.googleapis.com/maps/api/js?sensor=false&callback=init_google_maps&ver=3.0不允許跨源幀。這對我來說很奇怪,因爲我沒有在任何類型的框架中加載任何東西。請注意,地圖仍然加載,但控制檯中的錯誤與我有關。

  2. 地圖控件顯示不正確。我不認爲這與第一個問題有關,因爲即使在我以傳統方式(同步)加載API時,我也會得到這個結果,但它可能以某種方式相關。

enter image description here

我不知道,如果它很重要,但我我的「localhost」的測試服務器上運行這一點。關於可能導致這些問題的任何想法?

更新: 正如下面所討論的,X框架問題只發生在我通過yepnope加載API時。我不明白爲什麼使用yepnope注入腳本標記會導致錯誤,並使用更簡單的js函數不會。然而,我主要關心的是地圖的顯示。我在本地服務器上的更精簡的頁面上測試了地圖,並且顯示正確。所以,我目前的假設是,我有一個風格(或腳本?)在頁面的某個地方聲明干擾谷歌地圖。

更新2: 好的,顯示問題,如果最終解決。我瀏覽了我的主要樣式表並評論了部分,直到找到罪魁禍首。爲了讓我的圖像在流暢的佈局中響應,我宣佈了img { max-width: 100%; }。顯然,谷歌地圖不喜歡這個。一旦我覆蓋地圖容器的這種風格,一切都顯示正常。然而,X框架問題仍然讓我困惑。

回答

1

關於第一個問題,如果要異步加載Maps API,我建議直接使用API documentation中描述的技術(簡單的動態插入<script>元素)而不是yepnope。它應該可以很好地工作。

關於第二個問題,在localhost上運行是沒有問題的;這是測試Maps API頁面的正常方式。 (我假設你的意思是使用本地Web服務器,並從localhost://網址,而不是一個file://網址在瀏覽器加載頁面。)

這樣一些症狀可以通過不作爲地圖容器元素引起的適當尺寸時,地圖首先被創建。特別是,嘗試使用height:100%可能會有問題。但是如果沒有看到一個正在運行的例子就很難猜測。你能把代碼發佈到某個網頁嗎?如果沒有別的,甚至可能在JSFiddle

+0

感謝您的幫助。確實,當我使用文檔中的示例代碼時,我不會收到X框錯誤。但是,我無法理解爲什麼。我使用yepnope來加載所有的腳本,如果可能的話,我真的更喜歡使用它。我會嘗試在公共場所獲得一些代碼,並且如果可以的話讓你知道。至於造型的容器。我會做的是設置400px的高度,並保持寬度自動。這麼奇怪。 – 2013-03-28 17:11:05