2009-12-23 366 views
0

我对谷歌地图“有趣”,并在一些协助后。基本上我有一小段HTML/Javascript,可以使用Ajax将它加载到标准HTML页面或div中。目前我正在尝试做的是获取地图出现。当页面作为HTML的一部分加载时很好,出现,唱歌,跳舞,偶尔播放长笛。但是,当它通过Ajax加载它不会出现,但JavaScript的谷歌写入。谷歌地图Ajax加载

我想我缺少一个负载或就绪触发器。但找不到我所缺少的东西。我的搜索功能很弱。这是代码,并不像你所看到的那样复杂。谷歌地图包括已被排除在外,但没有错误,或警告,报告,并且我说它可以很好地作为HTML页面。

<div id="map_canvas_<?= $userContact->getId() ?>" style="margin: 10px auto; width: 90%; height: 300px;"></div> 
<script type="text/javascript"> 

    var mapInstance = null; 

    var startLatitude = 53.975044; 
    var startLongitude = -2.153320; 
    var startZoomLevel = 5; 

// create the new instance. 
    mapInstance = new GMap2($('map_canvas_<?= $userContact->getId() ?>')); 

    // center the map on the UK 
    mapInstance.setCenter(new GLatLng(startLatitude, startLongitude), startZoomLevel); 

</script> 

Khaine。

回答

2

您是否尝试过将您的AJAX调用的结果传递给javascript的eval()方法?这将执行您从其他页面加载的任何JavaScript代码。

如果您只是使用AJAX加载您的js并将其添加到div,那么代码将不会自动执行。

+0

我知道这是明显的东西,我只是添加它。所以它除了加载之外什么都不做。非常好,谢谢。 – Khainestar 2009-12-24 09:41:40

0

我想你需要在window.onload函数中创建你的GMap2实例等。例如:

// ..other code stays the same 
function initMap() { 
    if (GBrowserIsCompatible()) { 
     mapInstance = new GMap2(..); 
     mapInstance.setCenter(..); 
    } 
} 
window.onload = initMap; 

希望能够解决您的问题。

+0

不幸的是onload事件没有被触发。只是为了确定我尝试过了。 window.load = function(){alert(“XX”); } \t 负载没有警报。 – Khainestar 2009-12-24 09:21:10

+0

你会想使用“window.onload”而不是“window.load”。如果一切都失败了,用你想运行的javascript函数在你的body标签上贴一个onload属性: – 2009-12-24 14:49:42