2012-03-13 142 views
1

我正在使用其中一個collapsing div來將Google地圖隱藏在我的網頁中。 但是,當我觸發事件來擴大div並顯示谷歌地圖時,它不會出現。 而這個問題只有在IE瀏覽器中,所有其他瀏覽器才能正常工作。 我發現有同一個問題,迴應後添加此代碼:隱藏div中的Google地圖

google.maps.event.trigger(map,'resize');

但是我應該把它放在哪裏?我放入了一個Javascript函數,當div崩潰時它會被調用,但它不起作用。我應該用我的地圖名稱替換「地圖」嗎? 我從谷歌網站獲得了谷歌地圖的代碼作爲「iframe」標記,我只是將其粘貼到 我的網頁... 請解釋。

+0

你怎麼真的觸發事件?你用什麼代碼來揭示div?我們需要看看你在做什麼,所以我們可以幫助你做到正確。你有鏈接到測試網站嗎? – 2012-03-13 09:19:56

回答

1
google.maps.event.trigger(map, 'resize'); 

適用於您使用Maps API的情況。從而地圖是對地圖對象的引用。

但是你沒有使用API​​。您正在使用Google地圖的iframe。

谷歌地圖不喜歡被隱藏的div。我相信的解決方案是讓iframe表示1x1像素。然後調整div的大小以使其足夠大 - 並且可見。

另一種方法是給iframe一個src =「about:blank」。然後在顯示div之後,動態地將src設置爲正確的url。通過這種方式,當div可見時,地圖被加載。 (這可能更好,因爲你不會導致用戶加載iframe的東西,即使他們不打開地圖)

+0

我知道它與API一起工作 - 謝謝! – Darius 2012-03-14 00:30:55

0

因爲在你的問題中,你說你沒有使用Google Maps API,你可以執行以下操作:

裹地圖:

<div id="map-wrapper"><iframe src="https://www.google.com/maps/..." /></div> 

使用此代碼(jQuery的版本)時,會顯示在地圖:

$('#map-wrapper').html($('#map-wrapper').html()); 

的JavaScript版本:

document.getElementById("map-wrapper").innerHTML = document.getElementById("map-wrapper").innerHTML; 

當地圖顯示時,包裝器(谷歌地圖iframe)的內容將被重新生成,因此重新加載。