谷歌地图在本地呈现,但不在现场环境中
问题描述:
我有一个页面呈现指定位置的简单谷歌地图。当我在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&v=2&sensor=false&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!