谷歌地图在本地呈现,但不在现场环境中

问题描述:

我有一个页面呈现指定位置的简单谷歌地图。当我在localhost上本地运行它时,该映射根本没有任何问题,但是,当我将这些代码部署到我们的实时Web服务器时(使用我们的LIVE谷歌API密钥作为适当的域),它无法渲染,在页面上的JavaScript中发出警报,看起来'Initialize'方法(应该在正文onLoad中调用)没有被调用。谷歌地图在本地呈现,但不在现场环境中

当我查看在活动服务器上呈现的HTML源代码时,它完全按照本地本地版本的站点(包括正文onLoad事件中对initialize()的调用)显示,尽管使用了不同的地图API密钥。

我输出主机(alert(window.location.host);),以确保我通过谷歌地图API生成的密钥网站,完全对应于实时服务器,它所做的。

有没有人有任何想法,为什么它会在本地工作,但没有部署到实时服务器时?实时网站托管在2个负载平衡的Web服务器上。

这是渲染的JavaScript:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAA-BU8POZj19wRlTaKIXVM9xTz76xxk4yAELG9u79oXrhnLTB5NRRvAZ-bkKn1x8J68nfRTVOIWNPJEA" type="text/javascript"></script> 
<script type="text/javascript"> 
    var map; 
    var geocoder; 

    alert(window.location.host); 

    function initialize() { 
     if (GBrowserIsCompatible()) { 
      map = new GMap2(document.getElementById("businessMap")); 
      map.setUIToDefault(); 
      geocoder = new GClientGeocoder(); 
      showAddress('St Margarets Street SW1P 3 London'); 
     } 
    } 

    function showAddress(address) { 
     geocoder.getLatLng(
      address, 
      function(point) { 
       if (!point) { 
        // Address could not be located. 
        jQuery('#googleMap').hide(); 
       } else { 
        map.setCenter(point, 13); 
        var marker = new GMarker(point); 
        map.addOverlay(marker); 
        var html = 'Address info for the marker'; 
        marker.openInfoWindow(html); 

        GEvent.addListener(marker, "click", function() { 
         marker.openInfoWindowHtml(html); 
        }); 
       } 
      } 
     ); 
    } 
</script> 

任何帮助将非常感激。

谢谢。

我找到了问题。这是一些与Facebook Connect相关的JavaScript冲突,它调用了window.onload上的FB Connect相关页面,因此不会在正文onload事件中调用初始化函数。

我应该早点注意到这个冲突的javascript!