【问题标题】:Google Map Ajax load谷歌地图 Ajax 加载
【发布时间】:2009-12-23 17:41:41
【问题描述】:

我在谷歌地图上玩得很开心,并得到了一些帮助。基本上,我有一小块 HTML/Javascript 可以加载到标准 HTML 页面或使用 Ajax 加载到 div 中。我目前要做的就是让地图出现。当页面作为 HTML 的一部分加载时,它会出现、出现、唱歌、跳舞,偶尔还会吹奏长笛。但是,当它通过 Ajax 加载时它不会出现,但 javascript 谷歌写的会出现。

我想我错过了加载或就绪触发器。但无法找出我错过了什么。我的 search-foo 很弱。这是代码,如您所见,并不复杂。谷歌地图包括已被遗漏,但没有报告错误或警告,正如我所说,它可以作为 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>

凯恩。

【问题讨论】:

    标签: javascript ajax google-maps


    【解决方案1】:

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

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

    【讨论】:

    • 我知道这很明显,我只是添加它。所以它除了加载之外什么都不做。太好了,谢谢。
    【解决方案2】:

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

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

    希望能解决您的问题。

    【讨论】:

    • 不幸的是 onload 事件没有触发。只是为了确定我试过了。 window.load = function () { alert("XX"); } 负载没有警报。
    • 你会想要使用“window.onload”而不是“window.load”。如果所有其他方法都失败了,请在你的 body 标签上加上你要运行的 javascript 函数的 onload 属性:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    相关资源
    最近更新 更多