簡體   English   中英

當我瀏覽回到頁面時,不會彈出Google Maps InfoWindow

[英]Google Maps InfoWindow Not Popping Up When I Browse Back to Page

使用Google Maps Javascript V3,我在地圖上設置了一些標記。 我在每個標記上都有一個偵聽器,該標記在click事件上彈出一個InfoWindow。 這樣很好。 問題是當我單擊頁面上的任何鏈接,然后瀏覽回到原始頁面時,InfoWindows停止顯示。 我已經在偵聽器中放入了警報語句,所以我知道偵聽器正在運行,但是我無法弄清為什么沒有顯示InfoWindows。

這是我的代碼:

<script type="text/javascript">
var map;
var viewable;
var markerArray = new Array();
var infoWindow;
function initialize() {
    infoWindow = new google.maps.InfoWindow({ content: "holding..." });

    var mapOptions = {
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      zoom: 15,
    };

    map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

    var bounds = new google.maps.LatLngBounds();
        var loop_latlng = new google.maps.LatLng( 42.341111, -71.080707 );
        marker = addMarker( loop_latlng, "<strong>$1,495.00</strong> <br> Columbus Ave <br> 0 beds / 1 baths <br> <img src='/images/71428455_0.jpg' width=150> <br> <a href='/mls_rn/8305'>get more details</a>" );
        bounds.extend(loop_latlng);        

        var loop_latlng = new google.maps.LatLng( 42.340022, -71.0657278 );
        marker = addMarker( loop_latlng, "<strong>$2,000.00</strong> <br> Union Park St <br> 2 beds / 1 baths <br> <img src='/images/71426623_0.jpg' width=150> <br> <a href='/mls_rn/8253'>get more details</a>" );
        bounds.extend(loop_latlng);        

    map.setCenter(bounds.getCenter());
    map.fitBounds(bounds);
    showMarkers();
}

function addMarker(location,contentString) {

  var iw = new google.maps.InfoWindow({
    content: contentString
  });

  var marker = new google.maps.Marker({
    position: location,
    animation: google.maps.Animation.DROP,
    content: contentString,
    map: map
  });

  google.maps.event.addListener(marker,'click',function(){
    infoWindow.setContent(this.content); 
    infoWindow.open(map,this);
  });

  markerArray.push(marker); 

  return marker;
}


// display all the markers on the map
function showMarkers() {
  if (markerArray) {

    for ( i in markerArray ) {
      markerArray[i].setMap(map);
    }
  }
}


function loadScript() {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyCICKRjJ3Vo_l2hy5uV7GdkYBot6jCtZzI&sensor=true&callback=initialize";
  document.body.appendChild(script);
}
window.onload = loadScript;
</script>

我認為這實際上可能是Rails的問題。 如果將其剪切並粘貼到HTML文檔中,它似乎可以正常工作; 但是,在我的Rails應用程序中,我看到了異常行為。 我注意到的一件事是,地圖似乎在純HTML情況下重新初始化,但在Rails中似乎沒有這樣做。 我將對此進行更多調查並發表評論。 如果以前有人看過; 但是,請發出聲音!

官方信息窗口示例中 ,您描述的行為對我而言沒有發生,因此,我希望您的代碼行為完全相同。

您將需要為此類功能手動編程。 在符合HTML5的瀏覽器上,您可以使用pageshow事件手動打開信息窗口。 但是,所有當前(小於10.0)的Internet Explorer版本均不支持該事件,因此您還必須在窗口load事件中進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM